欢迎您光临本小站。希望您在这里可以找到自己想要的信息。。。

log4j日志分级别模块化输出不同文件

架构&设计模式 water 3327℃ 0评论

一、
实现分模块,输出到不同的日志文件,
  以下是log4j.properties的实现  

[java] view plaincopy

  1.     

  2. log4j.appender.file=org.apache.log4j.DailyRollingFileAppender     

  3. log4j.appender.file.file=src\\log\\all.log     

  4. log4j.appender.file.DatePattern='.'yyyy-MM-dd     

  5. log4j.appender.file.layout=org.apache.log4j.PatternLayout     

  6. log4j.appender.file.layout.ConversionPattern=[%-5p]   %d{yyyy-MM-dd   HH:mm:ss,SSS}  method:%l%n%m%n     

  7. log4j.rootLogger=debug,file      

  8.     

  9. log4j.appender.usermanagerfile=org.apache.log4j.DailyRollingFileAppender     

  10. log4j.appender.usermanagerfile.file=src\\log\\usermanager.log     

  11. log4j.appender.usermanagerfile.DatePattern='.'yyyy-MM-dd     

  12. log4j.appender.usermanagerfile.layout=org.apache.log4j.PatternLayout     

  13. log4j.appender.usermanagerfile.layout.ConversionPattern=[%-5p]   %d{yyyy-MM-dd   HH:mm:ss,SSS}   method:%l%n%m%n     

  14. log4j.logger.userManager   =   info,   usermanagerfile      

 

调试方法:

[java] view plaincopy

  1. public   static   void   main(String[]   args)throws   Exception   {     

  2.         

  3.     Log   logger   =   LogFactory.getLog("file");     

  4.     Log   logger   =   LogFactory.getLog("usermanager");     

  5.       

  6.   }     

二、log4j日志分级别输出到不同文件
 配置文件 

[java] view plaincopy

  1. #log4j.rootLogger=info,stdoutdebug,error   

  2. log4j.appender.stdout=org.apache.log4j.ConsoleAppender   

  3. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout   

  4. log4j.appender.stdout.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c – %m%n   

  5.   

  6. log4j.logger.info=info   

  7. log4j.appender.info=org.apache.log4j.DailyRollingFileAppender   

  8. log4j.appender.info.layout=org.apache.log4j.PatternLayout   

  9. log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c – %m%n   

  10. log4j.appender.info.datePattern='.'yyyy-MM-dd   

  11. log4j.appender.info.Threshold = INFO   

  12. log4j.appender.info.append=true   

  13. log4j.appender.info.File=${catalina.home}/logs/log4j/info.log   

  14.   

  15. log4j.logger.debug=debug   

  16. log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender   

  17. log4j.appender.debug.layout=org.apache.log4j.PatternLayout   

  18. log4j.appender.debug.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c – %m%n   

  19. log4j.appender.debug.datePattern='.'yyyy-MM-dd   

  20. log4j.appender.debug.Threshold = DEBUG   

  21. log4j.appender.debug.append=true   

  22. log4j.appender.debug.File=${catalina.home}/logs/log4j/debug.log   

  23.   

  24. log4j.logger.warn=warn   

  25. log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender   

  26. log4j.appender.warn.layout=org.apache.log4j.PatternLayout   

  27. log4j.appender.warn.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c – %m%n   

  28. log4j.appender.warn.datePattern='.'yyyy-MM-dd   

  29. log4j.appender.warn.Threshold = DEBUG   

  30. log4j.appender.warn.append=true   

  31. log4j.appender.warn.File=${catalina.home}/logs/log4j/warn.log   

  32.   

  33. log4j.logger.error=error   

  34. log4j.appender.error=org.apache.log4j.DailyRollingFileAppender   

  35. log4j.appender.error.layout=org.apache.log4j.PatternLayout   

  36. log4j.appender.error.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c – %m%n   

  37. log4j.appender.error.datePattern='.'yyyy-MM-dd   

  38. log4j.appender.error.Threshold = ERROR   

  39. log4j.appender.error.append=true   

  40. log4j.appender.error.File=$${catalina.home}/logs/log4j/error.log   

 

ConversionPattern设置输出格式的参数说明:

 %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,

 %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2011年08月30日 15:00:00,921

%r: 输出自应用启动到输出该log信息耗费的毫秒数

%c: 输出日志信息所属的类目,通常就是所在类的全名

%t: 输出产生该日志事件的线程名

%l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)

%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。

%%: 输出一个”%”字符 %F: 输出日志消息产生时所在的文件名称 %L: 输出代码中的行号 %m: 输出代码中指定的消息,产生的日志具体信息

%n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行

可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:

 1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。

 2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,”-”号指定左对齐。

 3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。

 4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉。

 

三、log4j日志级别介绍

log4j把日志分为ALL、TRACE&(跟踪)、DEBUG(调试)、INFO(信息)、WARNING(警告)、ERROR(错误)、FITAL(致命)、OFF等几个级别,级别依次升高。级别高的Level会屏蔽级别低的信息。

 

注意:

在程序中使用Log4j之前,首先要将commons-logging.jar和logging-log4j-1.2.9.jar导入到classpath中,并将log4j.properties放于src根目录中。

转载请注明:学时网 » log4j日志分级别模块化输出不同文件

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!