簡易log4j 父logger和子logger


log4j 父logger和子logger

        定義子logger其目的就是能夠在某一范圍內(某一個class或者某一個package)下面,日志的輸出方式與其他地方的日志輸出方式不同。

log4j.properties

[java] 
 
  1. <strong><span style="font-size:14px;">log4j.rootLogger = DEBUG,stdout,D  
  2. #log4j.debug=ture  //是否打開log4j的內部日志打印  
  3.   
  4. #(ConsoleAppender:控制台打印)   
  5. log4j.appender.stdout = org.apache.log4j.ConsoleAppender  
  6. log4j.appender.stdout.Target = System.out  
  7. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout  
  8. log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n  
  9.   
  10. #(DailyRollingFileAppender)  
  11. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender  
  12. log4j.appender.D.File = G://logs/log.log  
  13. log4j.appender.D.Append = true  
  14. log4j.appender.D.Threshold = DEBUG   
  15. log4j.appender.D.layout = org.apache.log4j.PatternLayout  
  16. log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n  
  17.   
  18. # (mail)  
  19. log4j.appender.mail=org.apache.log4j.net.SMTPAppender  
  20. log4j.appender.mail.Threshold=DEBUG  
  21. log4j.appender.mail.BufferSize=10  
  22. log4j.appender.mail.From = 123@qq.com  
  23. log4j.appender.mail.SMTPHost=smtp.qq.com  
  24. log4j.appender.mail.Subject=Log4J Message  
  25. log4j.appender.mail.SMTPUsername=123  
  26. log4j.appender.mail.SMTPPassword=xxx  
  27. log4j.appender.mail.To= 456@qq.com  
  28. log4j.appender.mail.layout=org.apache.log4j.PatternLayout  
  29. log4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n  
  30.   
  31.   
  32. #配置子logger,目的就是控制一定范圍內的日志輸出,比如這里的子logger是控制cn.server.test包下面的所有類的日志輸出,其父logger就是rootLogger  
  33. log4j.logger.cn.server.test=error,E  
  34.   
  35. log4j.additivity.cn.server.test=false //  
  36. log4j.appender.E = org.apache.log4j.DailyRollingFileAppender  
  37. log4j.appender.E.File =G://logs/error.log  
  38. log4j.appender.E.Append = true  
  39. log4j.appender.E.Threshold = ERROR   
  40. log4j.appender.E.layout = org.apache.log4j.PatternLayout  
  41. log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ] %m%n  

            配置子logger,目的就是控制一定范圍內的日志輸出,比如這里的子logger是控制cn.server.test包下面的所有類的日志輸出,其父logger就是rootLogger。

[java] 
 
  1. log4j.logger.cn.server.test=error,E  

 

         在cn.server.test包里面中使用

[java] 
  1. Logger logger = Logger.getLogger(xxx.class)  
得到logger對象,然后使用logger對象進行日志輸入的時候,logger會根據xxx.class的全類名找到這里聲明的子Logger
[plain] 
  1. log4j.logger.cn.server.test=error,E  
在cn.server.test包外的類,也可以使用
[java]
  1. Logger logger = Logger.getLogger("cn.server.test");  
特別指定使用該子logger進行日志輸出。

 

         log4j的additivity屬性: 表示子logger是否要在父logger的appender中輸出日志,若是additivity設為false,則子Logger只會在自己的appender里輸出,而不會在父Logger的appender里輸出。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM