log4j的properties详细配置,分级输出日志文件
log4j是很常用的日志类包,在此做一下配置的记录
- 加载jar包和properities配置文件
将log4j.properties放在src根目录中或者resource中。
- properties具体配置信息
log4j.rootLogger = INFO , info, warn, error, stdout ###控制台输出 log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{1}:%L - %m%n ###info级别输出 log4j.logger.info = info log4j.appender.info = org.apache.log4j.DailyRollingFileAppender log4j.appender.info.File = ${webroot}/logs/convert_info.log log4j.appender.info.Append = true log4j.appender.info.Threshold = INFO log4j.appender.info.layout = org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n log4j.appender.info.datePattern='.'yyyy-MM-dd log4j.appender.info.filter.infoFilter = org.apache.log4j.varia.LevelRangeFilter log4j.appender.info.filter.infoFilter.LevelMin=INFO log4j.appender.info.filter.infoFilter.LevelMax=INFO ###warn级别输出 log4j.logger.warn = warn log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender log4j.appender.warn.File = ${webroot}/logs/convert_warn.log log4j.appender.warn.Append=true log4j.appender.warn.Threshold=WARN log4j.appender.warn.layout=org.apache.log4j.PatternLayout log4j.appender.warn.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n log4j.appender.warn.datePattern='.'yyyy-MM-dd log4j.appender.warn.filter.warnFilter=org.apache.log4j.varia.LevelRangeFilter log4j.appender.warn.filter.warnFilter.LevelMin=WARN log4j.appender.warn.filter.warnFilter.LevelMax=WARN ###error级别输出 log4j.logger.error = error log4j.appender.error = org.apache.log4j.DailyRollingFileAppender log4j.appender.error.File = ${webroot}/logs/convert_error.log log4j.appender.error.Append = true log4j.appender.error.Threshold = ERROR log4j.appender.error.layout = org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n log4j.appender.error.datePattern='.'yyyy-MM-dd log4j.appender.error.filter.errorFilter=org.apache.log4j.varia.LevelRangeFilter log4j.appender.error.filter.errorFilter.LevelMin=ERROR log4j.appender.error.filter.errorFilter.LevelMax=ERROR
- 给webroot变量设置值
private void log4jInitialized(){ String log4jPath = ""; try { log4jPath = ApplicationInitListener.class.getResource("").toURI().getPath(); log4jPath = log4jPath.substring(0, log4jPath.indexOf("WEB-INF")) + "WEB-INF"; } catch (URISyntaxException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.setProperty("webroot", log4jPath); }
在网站应用程序初始化时调用
public void contextInitialized(ServletContextEvent arg0) { /*初始化日志路径*/ log4jInitialized(); }
- 参考资料
1、网上很多一样号称能够实现分级存储日志的配置,但实际上不是真正的分级存储
http://www.iteye.com/topic/744693
2、真正能够实现分级的而不需要实现编程的配置方法
http://wendal.net/219.html
3、通过编程方式实现分级方法,有了上面的实现方式,不用进行编程,哈
http://blog.csdn.net/projava/article/details/7344839
wala-wo