1. 程式人生 > >log4j:WARN No appenders could be found for logger 解決方案

log4j:WARN No appenders could be found for logger 解決方案

我們在使用Log4j的時候,總是出現: 
Java程式碼  收藏程式碼
  1. log4j:WARN No appenders could be found for logger (org.apache.ibatis.logging.LogFactory).  
  2. log4j:WARN Please initialize the log4j system properly.  

這個問題是因為我們的log4j.properties檔案配置不夠完整,所以我們給它配置齊了就不會再出現這個問題。 
log4j.properties不完整配置如下: 
Java程式碼  收藏程式碼
  1. log4j.rootLogger=DEBUG, stdout   
  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender   
  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   
  4. log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n   
  5. log4j.logger.java.sql.PreparedStatement=DEBUG   

完整配置如下: 
Java程式碼  收藏程式碼
  1. log4j.rootLogger=CONSOLE,FILE  
  2. log4j.addivity.org.apache=true  
  3. # 應用於控制檯  
  4. log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender  
  5. log4j.appender.CONSOLE.Threshold=INFO  
  6. log4j.appender.CONSOLE.Target=System.out  
  7. log4j.appender.CONSOLE.Encoding=GBK  
  8. log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout  
  9. log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
  10. # 每天新建日誌  
  11. log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender  
  12. log4j.appender.A1.File=C:/log4j/log  
  13. log4j.appender.A1.Encoding=GBK  
  14. log4j.appender.A1.Threshold=DEBUG  
  15. log4j.appender.A1.DatePattern='.'yyyy-MM-dd  
  16. log4j.appender.A1.layout=org.apache.log4j.PatternLayout  
  17. log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n  
  18. #應用於檔案  
  19. log4j.appender.FILE=org.apache.log4j.FileAppender  
  20. log4j.appender.FILE.File=C:/log4j/file.log  
  21. log4j.appender.FILE.Append=false  
  22. log4j.appender.FILE.Encoding=GBK  
  23. log4j.appender.FILE.layout=org.apache.log4j.PatternLayout  
  24. log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
  25. # 應用於檔案回滾  
  26. log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender  
  27. log4j.appender.ROLLING_FILE.Threshold=ERROR  
  28. log4j.appender.ROLLING_FILE.File=rolling.log  
  29. log4j.appender.ROLLING_FILE.Append=true  
  30. log4j.appender.CONSOLE_FILE.Encoding=GBK  
  31. log4j.appender.ROLLING_FILE.MaxFileSize=10KB  
  32. log4j.appender.ROLLING_FILE.MaxBackupIndex=1  
  33. log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout  
  34. log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
  35. #自定義Appender  
  36. log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender  
  37. log4j.appender.im.host = mail.cybercorlin.net  
  38. log4j.appender.im.username = username  
  39. log4j.appender.im.password = password  
  40. log4j.appender.im.recipient = yyflyons@163.com  
  41. log4j.appender.im.layout=org.apache.log4j.PatternLayout  
  42. log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  
  43. #應用於socket  
  44. log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender  
  45. log4j.appender.SOCKET.RemoteHost=localhost  
  46. log4j.appender.SOCKET.Port=5001  
  47. log4j.appender.SOCKET.LocationInfo=true  
  48. # Set up for Log Facter 5  
  49. log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout  
  50. log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n  
  51. # Log Factor 5 Appender  
  52. log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender  
  53. log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000  
  54. # 傳送日誌給郵件  
  55. log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender  
  56. log4j.appender.MAIL.Threshold=FATAL  
  57. log4j.appender.MAIL.BufferSize=10  
  58. log4j.appender.MAIL.From=yyflyons@163.com  
  59. log4j.appender.MAIL.SMTPHost=www.wusetu.com  
  60. log4j.appender.MAIL.Subject=Log4J Message  
  61. log4j.appender.MAIL.To=yyflyons@126.com  
  62. log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout  
  63. log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  


再次執行你的程式,你會發現Log4j的警告消失了。不過發現以前的Log4j控制檯資訊也沒有了,其實只要把上面詳細配置的log4j.rootLogger=CONSOLE,FILE改為log4j.rootLogger=DEBUG,CONSOLE,FILE,你就發現,控制檯資訊又回來了。 
Java程式碼  收藏程式碼
  1. log4j.rootLogger=CONSOLE,FILE  
  2. #log4j.rootLogger=DEBUG,CONSOLE,FILE  
  3. log4j.addivity.org.apache=true