首页 > 其他分享 >Log4j输出到多个自定义文件

Log4j输出到多个自定义文件

时间:2023-08-29 18:36:58浏览次数:29  
标签:输出 自定义 ALLLOG Log4j DAOLOG log4j 日志 appender Logger


 

引入:

log4j的强大功能无可置疑,但实际应用中免不了遇到某个功能需要输出独立的日志文件的情况,怎样才能把所需的内容从原有日志中分离,形成单独的日志文件呢?其实只要在现有的log4j基础上稍加配置即可轻松实现这一功能。

 

实例:

 对于log4j的简单配置,可以参见log4j文档说明,这里先来看一个配置文件:

#
##配置log4j的根logger级别为(DEBUG)
log4j.rootLogger=DEBUG
#
##将DAO层log记录到DAOLog和ALLLog中
log4j.logger.DAOLOG=DEBUG,DAOLOG,ALLLOG
#
##将逻辑层log记录到ASLog和ALLLog中
log4j.logger.ASLOG=DEBUG,ASLOG,ALLLOG
#
##配置ALLLOG-记录所有日志信息
log4j.appender.ALLLOG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ALLLOG.file=${webapp.root}/logs/ALLLog.log
log4j.appender.ALLLOG.DatePattern='.'yyyyMMdd
log4j.appender.ALLLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.ALLLOG.layout.ConversionPattern=%d{HH\:mm\:ss,SSS} %p %c - %m%n
log4j.additivity.ALLLOG=false
#
##配置DAOLOG-记录所有DAO层日志信息
log4j.appender.DAOLOG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.DAOLOG.file=${webapp.root}/logs/DAOLog.log
log4j.appender.DAOLOG.DatePattern='.'yyyyMMdd
log4j.appender.DAOLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.DAOLOG.layout.ConversionPattern=%d{HH\:mm\:ss,SSS} %p %c - %m%n
log4j.additivity.DAOLog=false
#
##配置ASLOG-记录所有业务逻辑层层日志信息
log4j.appender.ASLOG=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ASLOG.file=${webapp.root}/logs/ASLog.log
log4j.appender.ASLOG.DatePattern='.'yyyyMMdd
log4j.appender.ASLOG.layout=org.apache.log4j.PatternLayout
log4j.appender.ASLOG.layout.ConversionPattern=%d{HH\:mm\:ss,SSS} %p %c - %m%n
log4j.additivity.ASLog=false

 

说明:

log4j.rootLogger//==配置跟logger日志级别及日志输出位置,如:

 log4j.rootLogger=ERROR,file,stdout表示,日志级别为ERROR的日志输出到控制台和file中。

但如果日志要分别输出到不同的文件中,如根据功能模块输出到不同文件,则无需将不同位置在此设置,否则在无法按照功能模块输出日志,导致不同文件记录相同的日志。

 

log4j.additivity是子Logger是否继承父Logger 的 输出源(appender)的标志位。具体说,默认情况下子Logger会继承父Logger的appender,也就是说子Logger 会在父Logger的appender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。

 


标签:输出,自定义,ALLLOG,Log4j,DAOLOG,log4j,日志,appender,Logger
From: https://blog.51cto.com/u_16240770/7278974

相关文章

  • 自定义镜像-镜像结构
       ......
  • 倒序输出任意位数的正整数
    #include<iostream>#include<iomanip>#include<ctime>#include<cstdlib>usingnamespacestd;intmain(){  intn;   cin>>n;  do  {    cout<<n%10;    n/=10;  }while(n!=0);   return0;}......
  • 选择排序输出多轮学号
    题目描述有n名学生从左往右排成一行站成队列,学号是1至n。给出这n名学生的身高,学号是i的学生的身高是h[i],所有学生的身高都不相同。现在进行n-1轮操作,第i轮操作由如下三个步骤构成:第一步:从当前学生队列排在第i个位置的学生至排在最后一个位置的学生当中,选出身高最矮的学生,不妨假......
  • C4D Octane2023渲染设置及图像输出问题
    含阴影的透明png图含阴影的透明PNG图就要用到Octane渲染器做无缝背景方面的知识了,需要增加下面2步:01、场景里添加一个平面,调整平面大小使阴影全部呈现在平面上,平面位置刚好贴在对象下面。02、新建个oc漫射材质球,勾选材质通道公用里的阴影捕捉(OC3.07的版本叫蒙版),把材质球给到......
  • visual studio 生成dll文件以及修改输出dll文件名称操作
    visualstudio生成dll文件以及修改dll文件名称Windows系统下VisualStudio可以通过.def文件创建dll。一、准备测试代码1.确定需要导出的函数,test.cpp文件中定义如下voidfun1(){ return;}voidfun2(){ return;}intmain(){ return0;}2.添加.def文件,一般添加到源文件下面。......
  • Swagger3 (OpenAPI3)自定义参数对象渲染设置ModelConverter
    Swagger2设置方法以SpringDataJPA里的分页参数Pageable为例,在使用Swagger2的时候,可以通过自定义AlternateTypeRule,修改参数对象的参数渲染;如下/***分页参数实体类参数转换,让swagger显示正常的传参**@paramresolver*@return*/@BeanpublicAlternateTy......
  • 【Python-每日技巧】格式化输出的区别
    在Python中,字符串可以使用单引号(')或双引号(")括起来。如果字符串本身包含引号字符,你可以在字符串中使用反斜杠(\)进行转义。对于字符串中的美元符号($),它是一个普通的字符,不需要进行特殊处理。你可以直接在字符串中使用美元符号,如下所示:my_string="Thisisastringwitha$symbol."......
  • 解决datax输出文件随机数后缀问题
    原版的datax将数据库数据输出到指定文件时,会在该文件名后面加上一个随机数,不方便使用。这是datax源码中的问题,需要去https://github.com/alibaba/DataX下载源码并重新编译datax。参考datax源代码编译安装_程序员_IT序号网(itno.cn)修改./datax-master/txtfilewriter/src/main......
  • C# 在datatable中添加自定义字段
    DataTabledt=newDataTable();sql.Append("SELECTafromb");dt=SqlHelper.GetDataTable(sql.ToString());sql=newStringBuilder();sql.Append("SELECTcfromd");varjcdt=SqlHelper.GetDataTable(sql.ToString());......
  • python中输出键最大、最小的项
     001、输出键最大的项a、>>>dict1={"c":30,"a":40,"b":80,"d":20,"e":60}>>>dict1{'c':30,'a':40,'b':80,'d':20,'e':60}>>&......