JavaEE SSH框架整合(四) 日志处理Spring结合 log4j、slf4j [转]

1. 加入log4j和slf4j的jar包

2. web.xml:  

  1. <context-param>  
  2.     <!--log4j配置地址 -->  
  3.     <param-name>log4jConfigLocation</param-name>  
  4.     <!-- <param-value>/WEB-INF/classes/log4j.properties</param-value> -->  
  5.     <param-value>classpath:log4j.properties</param-value>  
  6. </context-param>  
  7. <context-param>  
  8.     <!-- log4j 配置扫描刷新间隔 可以不用 -->  
  9.     <param-name>log4jRefreshInterval</param-name>  
  10.     <param-value>10000</param-value>  
  11. </context-param>  
  12. <!-- spring里的log4j配置监听器 -->  
  13. <listener>  
  14.     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
  15. </listener>  

3. src/log4j.properties:

  1. ### set log levels ###  
  2. log4j.rootLogger = debug,stdout,D,E  
  3.   
  4. ### 输出到控制台 ###  
  5. log4j.appender.stdout = org.apache.log4j.ConsoleAppender  
  6. log4j.appender.stdout.Target = System.out  
  7. log4j.appender.stdout.Threshold = INFO  
  8. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  
  9. log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{1}:%L - %m%n  
  10. log4j.appender.stdout.Encoding=UTF-8  
  11.   
  12. ### 输出到日志文件 ###  
  13. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender  
  14. log4j.appender.D.File = ${ssh}WEB-INF/logs/debug.log  
  15. log4j.appender.D.file.MaxFileSize=500KB  
  16. log4j.appender.D.Append = true  
  17.     ##输出DEBUG级别以上的日志  
  18. log4j.appender.D.Threshold = DEBUG  
  19. log4j.appender.D.layout = org.apache.log4j.PatternLayout  
  20. log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n  
  21. log4j.appender.D.Encoding=UTF-8  
  22.   
  23. ### 保存异常信息到单独文件 ###  
  24. log4j.appender.E = org.apache.log4j.DailyRollingFileAppender  
  25.     ## 异常日志文件名  
  26. log4j.appender.E.File = ${ssh}WEB-INF/logs/error.log   
  27. log4j.appender.E.file.MaxFileSize=500KB  
  28. log4j.appender.E.Append = true  
  29.     ## 只输出ERROR级别以上的日志!!!  
  30. log4j.appender.E.Threshold = ERROR  
  31. log4j.appender.E.layout = org.apache.log4j.PatternLayout  
  32. log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n  
  33. log4j.appender.E.Encoding=UTF-8  

  配置info级输出到控制台,debug和error 都输出到对应文件中。

4. 使用log对象

    1. import org.slf4j.Logger;  
    2. import org.slf4j.LoggerFactory;  
    3.   
    4. import com.stone.action.DefaultAction;  
    5.   
    6. public class LogUtil {  
    7.     //使用slf4j创建日志对象,好处时,以后更换为其它日志工具时,只要修改配置文件,不用修改代码  
    8.     private static Logger logger = LoggerFactory.getLogger(LogUtil.class);  
    9.     //使用log4j创建日志对象  
    10. //  private org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(getClass());  
    11.       
    12.     public static void error(String message) {  
    13.         logger.error(message);  
    14.     }  
    15.     public static void debug(String message) {  
    16.         logger.debug(message);  
    17.     }  
    18.     public static void info(String message) {  
    19.         logger.info(message);  
    20. //      org.apache.log4j.Logger.getLogger(LogUtil.class).info(message);  
    21.     }  
    22. }  
原文地址:https://www.cnblogs.com/whtydn/p/5040963.html