转!!log4j基础
log4j组件介绍
Log4j主要有三个组件:
- Logger:负责供客户端代码调用,执行debug(Object msg)、info(Object msg)、warn(Object msg)、error(Object msg)等方法。
- Appender:负责日志的输出,Log4j已经实现了多种不同目标的输出方式,可以向文件输出日志、向控制台输出日志、向Socket输出日志等。
- Layout:负责日志信息的格式化。
Logger 层级介绍
Logger的层级是logger名字指定的,如x.y 表示两层,x层和y层,x是y的父层级,x.y所在层级是y层级
log4j.additivity.* = false : 表示当前logger不需要打到父层级所指定的appender,只打到当前的appender;
默认true:表示当前logger将打印日志到当前的appender及所有的父层级所指定的appender
执行顺序及关系
调用Log4j输出日志时,调用各个组件的顺序:
- 1、日志信息传入 Logger。
- 2、将日志信息封装成 LoggingEvent 对象并传入 Appender。
- 3、在 Appender 中调用 Filter 对日志信息进行过滤,调用 Layout 对日志信息进行格式化,然后输出。 转自:http://gemantic.iteye.com/blog/1234996
首先要对配置文件的各个参数进行说明,这样才能合理的进行配置。
参数意义说明:
配置根Logger
- 其语法为:
- log4j.rootLogger = [ level ] , appenderName1, appenderName2, …
- level: 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或
- 者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
- appenderName: 就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
- 例如:log4j.rootLogger=info,A1,B2,C3
输出级别的种类
- OFF 、FATAL 、ERROR、WARN、INFO、DEBUG、TRACE 、ALL
- OFF 为最高等级 关闭了日志信息
- FATAL 为可能导致应用中止的严重事件错误
- ERROR 为严重错误 主要是程序的错误
- WARN 为一般警告,比如session丢失
- INFO 为一般要显示的信息,比如登录登出
- DEBUG 为程序的调试信息
- TRACE 为比DEBUG更细粒度的事件信息
- ALL 为最低等级,将打开所有级别的日志
配置日志信息输出目的地
- log4j.appender.appenderName = fully.qualified.name.of.appender.class
- 1.org.apache.log4j.ConsoleAppender(控制台)
- 2.org.apache.log4j.FileAppender(文件)
- 3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
- 4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
- 5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
配置日志信息的格式
- log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
- 1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),
- 2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
- 3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
- 4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息) 转自:http://blog.csdn.net/hu_shengyang/article/details/6754031