转!!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

[html] view plain copy
 
  1. 其语法为:  
  2.     log4j.rootLogger = [ level ] , appenderName1, appenderName2, …  
  3. level: 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或  
  4. 者您定义的级别。Log4j建议只使用四个级别,优 先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定 义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。  
  5. appenderName: 就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。  
  6.         例如:log4j.rootLogger=info,A1,B2,C3  

输出级别的种类

  1. OFF 、FATAL 、ERROR、WARN、INFO、DEBUG、TRACE 、ALL  
  2.  OFF 为最高等级 关闭了日志信息  
  3.  FATAL  为可能导致应用中止的严重事件错误  
  4.  ERROR 为严重错误 主要是程序的错误  
  5.  WARN 为一般警告,比如session丢失  
  6.  INFO 为一般要显示的信息,比如登录登出  
  7.  DEBUG 为程序的调试信息  
  8.  TRACE 为比DEBUG更细粒度的事件信息  
  9.  ALL 为最低等级,将打开所有级别的日志  

 

配置日志信息输出目的地

  1. log4j.appender.appenderName = fully.qualified.name.of.appender.class  
  2.  1.org.apache.log4j.ConsoleAppender(控制台)  
  3.  2.org.apache.log4j.FileAppender(文件)  
  4.  3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)  
  5.  4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)  
  6.  5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)  

 

配置日志信息的格式

    1. log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class  
    2.  1.org.apache.log4j.HTMLLayout(以HTML表格形式布局),  
    3.  2.org.apache.log4j.PatternLayout(可以灵活地指定布局模式),  
    4.  3.org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),  
    5.  4.org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)   转自:http://blog.csdn.net/hu_shengyang/article/details/6754031
原文地址:https://www.cnblogs.com/wuyun-blog/p/5826136.html