打印日志时,需要根据项目中的不同模块将日志输入到不同的文件中,可通过添加不同的日志
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=51、日志分模块打印 如图:
根日志为: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中