强大的日志器——Log4j

时间:2022-11-01 19:50:17

Log4j的配置过程网上到处都是,一搜便得。使用也非常简单,10分钟内搞定。这里主要总结一下Log4j的优势:

 

1、支持按级别输出日志
日志信息的优先级从高到低有FATAL、ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度。
如:
log4j.rootCategory=DEBUG,stdout,R


2、支持同时将日志输出到多个目的地(Appender)
Appender包括console(控制台), files(文件), GUI components(图形的组件), remote socket servers(socket 服务),

JMS(java信息服务), NT Event Loggers(NT的事件日志), and remote UNIX Syslog daemons(远程UNIX的后台日志服务)。它

也可以做到异步记录。
Log4j提供的Appender种类有:
  //输出到控制台
  org.apache.log4j.ConsoleAppender

  //输出到文件,应该同时指定文件名
  org.apache.log4j.FileAppender

  //每天产生一个日志文件,应该同时指定文件名格式
  org.apache.log4j.DailyRollingFileAppender

  //文件大小到达指定尺寸的时候产生新文件,应该同时制定保留多少个备份
  org.apache.log4j.RollingFileAppender

  org.apache.log4j.jdbc.JDBCAppender
  //输出到数据库,应该同时指定数据库连接参数和INSERT SQL语句

  //将日志信息以流格式发送到任意指定的地方,如上面提到的GUI组件,Socket,JMS、Syslog……
  //参见:http://wanwok.javaeye.com/blog/616829
  org.apache.log4j.WriterAppender

 

3、输出的日志格式支持多种Layout

  //输出为HTML文件,以表格形式布局——比纯文本看起来是不是清晰多了
  org.apache.log4j.HTMLLayout

  //可以灵活地指定布局模式,应该同时指定ConversionPattern,可以按指定的格式输出时间日期、毫秒、类名、函数名、行数、线程等。
  org.apache.log4j.PatternLayout

  //简单格式,只包含日志信息的级别和信息字符串
  org.apache.log4j.SimpleLayout

  //包含日志产生的时间、线程、类名等等信息
  org.apache.log4j.TTCCLayout

 

4、可以支持异步日志,提升性能

 

5、非常重要的一点——既支持配置文件指定相关参数,也支持运行时动态改变日志级别等参数


 

另外一个问题,Log4j通常和common-logging配合使用,这篇文章有说明:

为什么同时使用commons-logging和Log4j
http://zy77612.javaeye.com/blog/670506