log4j日志分模块打印

打印日志时,需要根据项目中的不同模块将日志输入到不同的文件中,可通过添加不同的日志

log4j.rootLogger=DEBUG,Console,LOGFILE_COMMOM

log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Threshold=INFO
log4j.appender.Console.Target=System.out
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}:[%p] %C{1}.%M %m%n

log4j.appender.LOGFILE_COMMOM=org.apache.log4j.RollingFileAppender
log4j.appender.LOGFILE_COMMOM.Threshold=WARN
log4j.appender.LOGFILE_COMMOM.File=${oasc.root}/WEB-INF/logs/CommomLogger.log
log4j.appender.LOGFILE_COMMOM.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE_COMMOM.layout.ConversionPattern=%n[%d{yyyy-MM-dd HH:mm:ss}][%-5p] - %l%n%m%n
log4j.appender.LOGFILE_COMMOM.MaxFileSize=100MB
log4j.appender.LOGFILE_COMMOM.MaxBackupIndex=5
###################################################################################
# alarm logger \u8bbe\u5907\u5fc3\u8df3\u65e5\u5fd7
###################################################################################
log4j.logger.AlarmLogger=INFO,CONSOLE_APPENDER_ALARM_LOGGER,LOGFILE_APPENDER_ALARM_LOGGER
log4j.additivity.AlarmLogger=false

# \u5e94\u7528\u4e8e\u63a7\u5236\u53f0
log4j.appender.CONSOLE_APPENDER_ALARM_LOGGER=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE_APPENDER_ALARM_LOGGER.Threshold=INFO
log4j.appender.CONSOLE_APPENDER_ALARM_LOGGER.ImmediateFlush=true
log4j.appender.CONSOLE_APPENDER_ALARM_LOGGER.Target=System.out
log4j.appender.CONSOLE_APPENDER_ALARM_LOGGER.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE_APPENDER_ALARM_LOGGER.layout.ConversionPattern=%n[%d{yyyy-MM-dd HH:mm:ss}][%-5p] - %l%n%m%n

# \u5e94\u7528\u4e8e\u65e5\u5fd7\u6587\u4ef6
log4j.appender.LOGFILE_APPENDER_ALARM_LOGGER=org.apache.log4j.RollingFileAppender
log4j.appender.LOGFILE_APPENDER_ALARM_LOGGER.Threshold=WARN
log4j.appender.LOGFILE_APPENDER_ALARM_LOGGER.File=${oasc.root}/WEB-INF/logs/AlarmLogger.log
log4j.appender.LOGFILE_APPENDER_ALARM_LOGGER.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE_APPENDER_ALARM_LOGGER.layout.ConversionPattern=%n[%d{yyyy-MM-dd HH:mm:ss}][%-5p] - %l%n%m%n
log4j.appender.LOGFILE_APPENDER_ALARM_LOGGER.MaxFileSize=100MB
log4j.appender.LOGFILE_APPENDER_ALARM_LOGGER.MaxBackupIndex=5

1、日志分模块打印
如图:

  • 根日志为:log4j.logger.rootLogger
  • 新增日志为:log4j.logger.AlarmLogger,新日志的配置与根日志一致(详情见 二、log4j配置文件说明

additivity属性:配置新增日志是否继承根日志,即新日志是否输出到根日志的目的去
它是 子Logger 是否继承 父Logger 的 输出源(appender) 的标志位。具体说,默认情况下子Logger会继承父Logger的appender,也就是说子Logger会在父Logger的appender里输出。若是additivity设为false,则子Logger只会在自己的appender里输出,而不会在父Logger的appender里输出。(转自:http://blog.csdn.net/junshao90/article/details/8364812)

2、根日志和新增日志的调用方式

/**根日志调用方式**/
private static Logger logger = Logger.getLogger(ShowLogger.class);
logger.info("print to info appender");
logger.warn("print to warn appender");

/**新增日志调用方式**/
private static Logger logger = Logger.getLogger("AlarmLogger");

如上面的配置:

  • 调用logger.info()时,日志将输出到控制台中
  • 调用logger.warn()时,由于根目录中有两个输出目的,调用的是warn,比info的级别高,所以日志将输出到控制台中,并输出到文件CommonLogger.log中



你可能感兴趣的:(Log4j)