log4j详解

来源:互联网 发布:killer e2400 linux 编辑:IT博客网 时间:2019/07/20 17:10
简介
    简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就可以配置文件灵活的设置 日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。
    Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来 显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。
    Log4j的标准配置及详细说明:
  1. <p>log4j.rootLogger = debug, stdout, R
  2. #log4j.rootLogger = [ level ], appendName1, appendName2, …appendNameN。同一个记录器可有多个输出端。 
  3. #PS:level的级别(此级别可以自定义,系统默认提供了以下级别)
  4. #debug 调试信息
  5. #info 一般信息
  6. #warn 警告信息
  7. #error 错误信息
  8. #fatal 致命错误信息
  9. #上面列出的就是所谓log4j的输出级别,log4j建议只使用4个级别,
  10. #它们从上到下分别为ERROR、WARN、INFO、DEBUG,其中 ERROR > WARN > INFO > DEBUG
  11. #假设你定义的级别是info,那么error和warn的日志可以显示而比他低的debug信息就不显示了。
  12. log4j.appender.stdout = org.apache.log4j.ConsoleAppender
  13. #org.apache.log4j.ConsoleAppender,将日志信息输出到控制台
  14. #org.apache.log4j.FileAppender,将日志信息输出到一个文件
  15. #org.apache.log4j.DailyRollingFileAppender,将日志信息输出到一个,并且每天输出到一个新的日志文件
  16. #org.apache.log4j.RollingFileAppender,将日志信息输出到一个文件,通过指定文件的的尺寸,当文件大小到达指定尺寸的时候会自动把文件改名,如名为example.log的文件会改名为 example.log.1,同时产生一个新的example.log文件。如果新的文件再次达到指定尺寸,又会自动把文件改名为 example.log.2,同时产生一个example.log文件。依此类推,直到example.log. MaxBackupIndex, MaxBackupIndex的值可在配置文件中定义。
  17. #org.apache.log4j.WriterAppender,将日志信息以流格式发送到任意指定的地方。
  18. #org.apache.log4j.jdbc.JDBCAppender,通过JDBC把日志信息输出到数据库中。
  19. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
  20. #log4j.appender.stdout.layout.ConversionPattern = [QC] %p [%t] %C.%M(%L) | %m%n
  21. log4j.appender.stdout.layout.ConversionPattern = [QC] %d{yyyy-MM-dd HH:mm:ss}:%p %t %c - %m %n
  22. #org.apache.log4j.HTMLLayout,以HTML表格形式布局
  23. #org.apache.log4j.PatternLayout,可以灵活地指定布局模式
  24. #org.apache.log4j.SimpleLayout,包含日志信息的级别和信息字符串
  25. #定义一个PatternLayout布局的语句为:
  26. #log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
  27. #log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1} - %m%n
  28. #PS:ConversionPattern参数的格式含义
  29. #格式名 含义
  30. #%c 输出日志信息所属的类的全名
  31. #%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
  32. #%f 输出日志信息所属的类的类名
  33. #%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
  34. #%m 输出代码中指定的信息,如log(message)中的message
  35. #%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
  36. #%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
  37. #%r 输出自应用启动到输出该日志信息所耗费的毫秒数
  38. #%t 输出产生该日志事件的线程名
  39. log4j.appender.R = org.apache.log4j.RollingFileAppender
  40. #log4j.appender.R.File = d:/log/error.log
  41. log4j.appender.R.File = /opt/logs/log4j.log
  42. log4j.appender.R.MaxFileSize = 100KB
  43. log4j.appender.R.MaxBackupIndex = 1
  44. log4j.appender.R.layout = org.apache.log4j.PatternLayout
  45. #[QC] QUALITY CONTROL 品质控制
  46. log4j.appender.R.layout.ConversionPattern =[QC] %p %t %c - %m%n
  47. # 配置指定类的日志级别
  48. log4j.logger.com.neusoft = WARN
  49. log4j.logger.com.opensymphony.oscache = INFO
  50. log4j.logger.net.sf.navigator = WARN
  51. log4j.logger.org.apache.commons = WARN 
  52. log4j.logger.org.apache.struts = WARN
  53. log4j.logger.org.displayta g= WARN
  54. log4j.logger.org.springframework = WARN
  55. log4j.logger.com.ibatis.db = WARN
  56. log4j.logger.org.apache.velocity = WARN
  57. log4j.logger.com.canoo.webtest = WARN
  58. log4j.logger.org.hibernate.ps.PreparedStatementCache = WARN
  59. log4j.logger.org.hibernate = WARN
  60. log4j.logger.org.logicalcobwebs = WARN
  61. log4j.logger.com.mchange.v2.async.ThreadPoolAsynchronousRunner = WARN
  62. log4j.logger.com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool = WAR
  63. # 错误信息 </p><p>#log4j.appender.error=org.apache.log4j.DailyRollingFileAppende
  64. #log4j.appender.error.File=E:/MyDoc/WorkSpace/webworkroot/logs/errors.log
  65. #log4j.appender.error.layout=org.apache.log4j.PatternLayout
  66. #log4j.appender.error.layout.ConversionPattern=[%d]-%-5p (%F:%L)|%m%n
  67. #log4j.appender.error.DatePattern='.'yyyy-MM-dd
  68. #log4j.appender.error.Threshold=ERROR
  69. #
  70. # CONSOLE 
  71. #log4j.appender.console=org.apache.log4j.ConsoleAppender
  72. #log4j.appender.console.layout=org.apache.log4j.PatternLayout
  73. #log4j.appender.console.layout.ConversionPattern=(%F:%L)|%m%n
  74. #
  75. #log4j.appender.errorcsle=org.apache.log4j.ConsoleAppender
  76. #log4j.appender.errorcsle.layout=org.apache.log4j.PatternLayout
  77. #log4j.appender.errorcsle.layout.ConversionPattern=%-5p (%F:%L)|%m%n
  78. #log4j.appender.errorcsle.Threshold=ERROR
  79. #
  80. # 业务系统 
  81. #log4j.logger.cn.vesung=DEBUG, logic
  82. #
  83. #log4j.appender.logic=org.apache.log4j.DailyRollingFileAppender
  84. #log4j.appender.logic.File=E:/MyDoc/WorkSpace/webworkroot/logs/logic.log
  85. #log4j.appender.logic.layout=org.apache.log4j.PatternLayout</p><p>#log4j.appender.logic.layout.ConversionPattern=[%d]-%-5p (%F:%L)|%m%n
  86. #log4j.appender.logic.DatePattern='.'yyyy-MM-dd</p>
复制代码
    转载自:http://bbs.itheima.com/thread-87214-1-1.html

0 0