Spring 中集成log4j日志框架

来源:互联网 发布:cf刷枪软件制作 编辑:程序博客网 时间:2024/06/05 04:07

构建项目,加入log4j日志框架

在pom.xml加入以下依赖:

<dependency>  <groupId>org.slf4j</groupId>  <artifactId>slf4j-api</artifactId>  <version>1.6.6</version></dependency><dependency>  <groupId>org.slf4j</groupId>  <artifactId>slf4j-log4j12</artifactId>  <version>1.6.6</version></dependency><dependency>  <groupId>log4j</groupId>  <artifactId>log4j</artifactId>  <version>1.2.16</version></dependency>

在resource文件夹创建log4j.properties文件

1 log4j.rootLogger = INFO, stdout, logfile2 #日志输出到控制台3 log4j.appender.stdout = org.apache.log4j.ConsoleAppender4 log4j.appender.stdout.layout = org.apache.log4j.PatternLayout5 log4j.appender.stdout.ConversionLayout = %d [%t] %-5p %c - %m%n6 #日志输出到文件7 log4j.appender.logfile = org.apache.log4j.DailyRollingFileAppender8 log4j.appender.logfile.File = /Users/yulinfeng/Log/log9 log4j.appender.logfile.maxFileSize=10240KB     #日志的最大容量为10M10 log4j.appender.logfile.Append = true    #是否追加写进文件11 log4j.appender.logfile.Threshold = DEBUG    #输出DEBUG级别日志到文件中12 log4j.appender.logfile.layout = org.apache.log4j.PatternLayout13 log4j.appender.logfile.layout.ConversionPattern = %d [%t] %-5p %c - %m%n

语法意义

      第1行,log4j.rootLogger=INFO, stdout, logfile。这是log4j的根配置,第一个参数表示输出什么级别的日志,后面的参数表示输出的位置,位置可以是控制台,也可以是文件,语法为log4j.rootLogger=[level], appendername……,在这里定义了两个输出位置,名字无所谓取设么,有意义即可。日志级别从高到低分别是:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,log4j建议只使用ERROR、WARN、INFO、DEBUG四个级别,也就是也就是在上面提到过的。

  第3、7行就分别指定了stdout和logfile日志的输出位置,log4j一共提供了5个。

  org.apache.log4j.ConsoleAppender(控制台)

  org.apache.log4j.FileAppender(文件)

  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

  org.apache.log4j.RollingFileAppender(文件大小达到一定大小后产生一个新的文件)

  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意位置)

   第4行表示日志信息的格式,一共有以下几种。   org.apache.log4j.HTMLLayout(以HTML表格输出)   org.apache.log4j.PatternLayout(灵活的自定义格式输出)   org.apache.log4j.SimpleLayout(简单的格式输出,只包括日志级别和日志信息的字符串)   org.apache.log4j.TTCCLayout(包含线程、日志级别、日志所在类和日志信息的字符串)   通常为了更为灵活的打印日志,我们会选择PatternLayout布局的日志,同时通过ConversionPattern自定义输出格式。

按照上面的配置,我们就可以在代码中进行日志的输出了。由于是在Spring框架下使用log4j,所以就要使用Spring对log4j进行初始化,在web.xml中对log4j进行初始化。

<web-app>    <display-name>log web</display-name>    <context-param>        <param-name>log4jConfigurationLocation</param-name>        <param-value>classpath*:log4j.properties</param-value>    </context-param>    <!--每隔60s扫描log4j的配置文件,这里配置的log4jRefreshInterval参数表示能不用重启web服务器就能动态更改log4j日志级别,这也是和Spring整合的一大好处-->    <context-param>        <param-name>log4jRefreshInterval</param-name>        <param-value>60000</param-value>    </context-param>    <listener>        <!--从spring4.2.1开始Log4jConfigListener已经被废弃,最好使用log4j2对应的org.apache.logging.log4j.web.Log4jServletContextListener.Log4jServletContextListener-->        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>    </listener></web-app>

此时在代码逻辑中加入以下代码即可根据我们的配置输出系统日志。

private Logger log = Logger.getLogger(Test.class);log.info(“test info”);

转自http://www.cnblogs.com/yulinfeng/p/7689388.html

原创粉丝点击