Spring集成log4j日志管理 .

本文介绍如何在Spring框架中配置log4j进行日志管理,包括在web.xml中配置log4j监听器及刷新间隔,以及log4j.properties文件的详细配置示例。

原文地址:http://blog.youkuaiyun.com/naruto1021/article/details/7969535

在使用Spring框架的时候,我们可以很方便的配置log4j来进行日志管理。

进行配置之前,首先得下载jar包(log4j-1.2.11.jar)

配置如下:

1.在web.xml中最上面加入如下配置代码:

 

  1. <!--log4j配置文件加载-->  
  2.    <context-param>      
  3.        <param-name>log4jConfigLocation</param-name>      
  4.        <param-value>/WEB-INF/log4j.properties</param-value>      
  5.    </context-param>  
  6.    <!--启动一个watchdog线程每1800秒扫描一下log4j配置文件的变化-->  
  7.    <context-param>      
  8.        <param-name>log4jRefreshInterval</param-name>      
  9.        <param-value>1800000</param-value>      
  10.    </context-param>   
  11.    <!--spring log4j监听器-->  
  12.    <listener>      
  13.        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>      
  14.    </listener>  
  1. <!--log4j配置文件加载-->  
  2.    <context-param>      
  3.        <param-name>log4jConfigLocation</param-name>      
  4.        <param-value>/WEB-INF/log4j.properties</param-value>      
  5.    </context-param>  
  6.    <!--启动一个watchdog线程每1800秒扫描一下log4j配置文件的变化-->  
  7.    <context-param>      
  8.        <param-name>log4jRefreshInterval</param-name>      
  9.        <param-value>1800000</param-value>      
  10.    </context-param>   
  11.    <!--spring log4j监听器-->  
  12.    <listener>      
  13.        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>      
  14.    </listener>  
 <!--log4j配置文件加载-->
    <context-param>    
        <param-name>log4jConfigLocation</param-name>    
        <param-value>/WEB-INF/log4j.properties</param-value>    
    </context-param>
    <!--启动一个watchdog线程每1800秒扫描一下log4j配置文件的变化-->
    <context-param>    
        <param-name>log4jRefreshInterval</param-name>    
        <param-value>1800000</param-value>    
    </context-param> 
    <!--spring log4j监听器-->
    <listener>    
        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>    
    </listener>


2.把log4j.properties配置文件放在上面配置的指定的目录下

 

log4j.properties配置文件:

 

  1. ######################################  
  2. #         log4j配置相关说明  
  3. ######################################  
  4.   
  5. #%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL   
  6. #%r 输出自应用启动到输出该log信息耗费的毫秒数   
  7. #%c 输出所属的类目,通常就是所在类的全名   
  8. #%t 输出产生该日志事件的线程名  
  9. #%m 输出代码中指定的信息   
  10. #%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”   
  11. #%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MM dd HH:mm:ss,SSS},输出类似: 2002年10月18日 22:10:28,921   
  12. #%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)   
  13.   
  14. #log4j提供4种布局:   
  15. #org.apache.log4j.HTMLLayout(以HTML表格形式布局)  
  16. #org.apache.log4j.PatternLayout(可以灵活地指定布局模式),  
  17. #org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),  
  18. #org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息  
  19.   
  20. #log4j中有五级logger 输出级别:  
  21. #FATAL 0   
  22. #ERROR 3   
  23. #WARN 4   
  24. #INFO 6   
  25. #DEBUG 7  
  26.   
  27. ######################################  
  28. #          log4j相关配置  
  29. ######################################  
  30.   
  31. #日志输出级别  
  32. log4j.rootLogger=INFO,stdout,other  
  33.   
  34. #设置stdout的日志输出控制台  
  35. log4j.appender.stdout=org.apache.log4j.ConsoleAppender  
  36. #输出日志到控制台的方式,默认为System.out  
  37. log4j.appender.stdout.Target = System.out  
  38. #设置使用灵活布局  
  39. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout  
  40. #灵活定义输出格式  
  41. log4j.appender.stdout.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %m %n    
  42.   
  43. #设置other的日志输出控制台  
  44. log4j.appender.other=org.apache.log4j.RollingFileAppender  
  45. #设置other的输出日志  
  46. log4j.appender.other.File=${webapp.root}/WEB-INF/logs/log.log  
  47. #设置other的日志最大限制  
  48. log4j.appender.other.MaxFileSize=1024KB  
  49. #最多只保存20个备份文件  
  50. log4j.appender.other.MaxBackupIndex=1000  
  51. #输出INFO级别以上的日志  
  52. og4j.appender.other.Threshold=INFO   
  53. #设置使用灵活布局  
  54. log4j.appender.other.layout=org.apache.log4j.PatternLayout  
  55. #灵活定义输出格式  
  56. log4j.appender.other.layout.ConversionPattern=[%p][%d{yyyy-MM-dd HH:mm:ss}] %l %t %m %n    
  57.   
  58. ######################################  
  59. #       hibernate相关配置  
  60. ######################################  
  61.   
  62. #输出hibernate调试过程中的错误日志  
  63. log4j.logger.org.hibernate=other  
  64. #输出HQL查询调试日志  
  65. log4j.logger.org.hibernate.hql.ast.AST=other  
  66. #输出SQL语句调试日志  
  67. log4j.logger.org.hibernate.SQL=other  
  68. #输出 JDBC参数查询的日志  
  69. log4j.logger.org.hibernate.type=other  
  70. #输出缓存日志   
  71. log4j.logger.org.hibernate.cache=other  
  72. #输出事务日志  
  73. log4j.logger.org.hibernate.transaction=other  
  74. #输出获取JDBC资源日志  
  75. log4j.logger.org.hibernate.jdbc=other
首先,需要在pom.xml文件中添加log4j2的依赖: ```xml <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.14.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.14.1</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.14.1</version> </dependency> ``` 接着,在resources目录下创建log4j2.properties文件,并进行配置: ```properties #日志级别 log4j.rootLogger=DEBUG,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{yyyy-MM-dd HH:mm:ss} [%t] [%p] %m%n #输出到文件 log4j.appender.file=org.apache.log4j.RollingFileAppender log4j.appender.file.File=./logs/spring.log log4j.appender.file.MaxFileSize=10MB log4j.appender.file.MaxBackupIndex=10 log4j.appender.file.layout=org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%t] [%p] %m%n ``` 最后,在spring的配置文件中添加log4j2的配置: ```xml <bean id="log4jInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="targetClass" value="org.apache.logging.log4j.LogManager" /> <property name="targetMethod" value="getContext" /> <property name="arguments"> <list> <value>false</value> </list> </property> </bean> ``` 这样就完成了spring集成log4j2使用.properties的配置。可以通过调整log4j.properties文件中的配置,实现不同的日志输出方式和日志级别。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值