log4j根据业务分出多个日志文件

很多时候,我们不同的业务日志要打印到不同的日志文件,比如我们一种日志是 数据库同步到数据仓库日志(db2dw) ,一种日志是 数据清洗日志(washdata) ,要分成2个不同日志文件进行记录看,具体的做法如下:

  • 1 在类里面确定好不同业务对应的日志名称,代码如下,这里就是刚刚说的不同的两种业务
Logger logger = Logger.getLogger("**db2dw**")
Logger logger = Logger.getLogger("**washdata**")
  • 2 log4j里面也同时定义好这2种业务的日志名称

如果是log4j.properties这样配置:

log4j.logger.db2dw=info,db2dwFile
log4j.logger.washdata=info,washDataFile

如果是spring的logback-spring.xml这样配置:

<logger name="db2dw" level="INFO">
    <appender-ref ref="db2dwFile"/>
logger>
<logger name="washdata" level="INFO">
    <appender-ref ref="washDataFile"/>
logger>
  • 3.接下来就是配置对应的appender,即db2dwFile和washDataFile这2个appender,这里以db2dwFile为例

如果是log4j.properties这样配置:

log4j.appender.db2dwFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.db2dwFile.File=./logs/db2dw.log
log4j.appender.db2dwFile.DatePattern = '_'yyyy-MM-dd'.log'
log4j.appender.db2dwFile.Append = true
log4j.appender.db2dwFile.layout=org.apache.log4j.PatternLayout
log4j.appender.db2dwFile.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} %m%n

如果是spring的logback-spring.xml这样配置:

<appender name="db2dwFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
  <encoder> 
    <pattern>%m%npattern> 
  encoder>  
  <file>./logs/db2dw.logfile>  
  <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> 
    <fileNamePattern>./logs/db2dw.log.%ifileNamePattern> 
  rollingPolicy>  
  <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> 
    <MaxFileSize>100MBMaxFileSize> 
  triggeringPolicy> 
appender>

你可能感兴趣的:(零碎)