首页 > 代码库 > log4j配置说明

log4j配置说明

1.基础配置 
##Log4J的配置之简单使它遍及于越来越多的应用中了    ##Log4J配置文件实现了输出到控制台、文件、回滚文件、发送日志邮件、输出到数据库日志表、自定义标签等全套功能。##一般来说常用的还是输出到日志文件或者数据库,本例中使用输出到文件的方式##Log4j建议只使用四个级别,优先级从低到高分别是DEBUG,INFO,WARN,ERROR #通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关 #比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来log4j.rootLogger = INFO,CONSOLE,LogFile,ErrorFilelog4j.addivity.org.apache = true# 应用于控制台log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender     log4j.appender.CONSOLE.Threshold =INFO log4j.appender.CONSOLE.Target = System.out log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern ==standard %d{yyyy-MM-dd HH:mm:ss,SSS} %p %l -%m%n#文件输出路径可以使用${standard.root}代替 .../tomcat/webapps/standart目录# Save the log info to the log file #log4j.appender.LogFile = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.LogFile.File = ../logs/standard_log4j_log.loglog4j.appender.LogFile.Append = truelog4j.appender.LogFile.ImmediateFlush = truelog4j.appender.LogFile.DatePattern=‘.‘yyyy-MM-ddlog4j.appender.LogFile.Threshold = INFOlog4j.appender.LogFile.layout = org.apache.log4j.PatternLayoutlog4j.appender.LogFile.layout.ConversionPattern ==standard %d{yyyy-MM-dd HH:mm:ss,SSS} %p %l -%m%n#应用于文件# Save the error info to the error file. A file one day. #log4j.appender.ErrorFile  = org.apache.log4j.DailyRollingFileAppender     log4j.appender.ErrorFile.File = ../logs/standard_log4j_error.loglog4j.appender.ErrorFile.Append = truelog4j.appender.ErrorFile.ImmediateFlush=truelog4j.appender.ErrorFile.DatePattern=‘.‘yyyy-MM-ddlog4j.appender.ErrorFile.Threshold=ERRORlog4j.appender.ErrorFile.layout = org.apache.log4j.PatternLayout     log4j.appender.ErrorFile.layout.ConversionPattern ==standard %d{yyyy-MM-dd HH:mm:ss,SSS} %p %l -%m%n# 结束

注意事项:

1.关于文件输出路径: ../logs/standard_log4j_error.log,生产环境下会将日志输出到tomcat的logs文件夹下,但是如果在Eclipse中使用tomcat布署应用时,日志会跑到eclipse的安装目录中。

2.关于文件输出路径,不建议使用绝对路径,会造成在不同的操作系统下日志的输出错误。

3.上述配置中的standard是项目名称,不同的项目中需要做不同的修改。

4.上述配置可以实现实现每个项目的日志输出前缀不一样,每个应用的日志文件文件名前缀不一致

 

 

2.优化配置

log4j配置中的项目名称“standard”关键字的问题,如果不想每个应用都改一次,可以做如下修改:

在初始化Listener中,添加代码

String project_name=servletContext.getInitParameter(“project_name”);System.setProperty("log4jPrefix",project_name);

在web.xml中可以配置

<context-param>        <param-name>project_name_var</param-name>        <param-value>standard</param-value>    </context-param>

log4j.propertites中可以配置:

log4j.appender.LogFile.File = logs/${log4jPrefix}_log4j_log.loglog4j.appender.LogFile.Append = truelog4j.appender.LogFile.ImmediateFlush = truelog4j.appender.LogFile.DatePattern=‘.‘yyyy-MM-ddlog4j.appender.LogFile.Threshold = INFOlog4j.appender.LogFile.layout = org.apache.log4j.PatternLayoutlog4j.appender.LogFile.layout.ConversionPattern ==${log4jPrefix} %d{yyyy-MM-dd HH:mm:ss,SSS} %p %l -%m%n

这样做的优点:

   1.不同应用之间,只需要修改web.xml中的配置,即可以实现每个项目的日志输出前缀不一样,每个应用的日志文件文件名前缀不一致。

      基础配置也可以实现此效果,但是需要每次在log4j.propertites中修改多个配置,容易漏掉。

 

作者:sdjnzqr
出处:http://www.cnblogs.com/sdjnzqr/
版权:本文版权归作者和博客园共有
转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任