log4j配置

log4j

    log4j官方主页 http://logging.apache.org/log4j/

    log4j类图

   log4j

    log4j主要由三大组件构成Logger,Appender,Layout

    Logger 日志写出器,供程序员输出日志信息(用来取代System.out和System.err日志写出器)

    这个类的全名为org.apache.log4j.Logger(注意JDK自带的也有一个java.util.logging.Logger)。

    Logger 继承了 Category 类,所以有如下方法可以调用

  • public void debug(Object msg);
  • public void debug(Object msg, Throwable t);
  • public void info(Object msg);
  • public void info(Object msg, Throwable t);
  • public void warn(Object msg);
  • public void warn(Object msg, Throwable t);
  • public void error(Object msg);
  • public void error(Object msg, Throwable t);
  • public void fatal(Object msg);
  • public void fatal(Object msg, Throwable t);

      

  • Logger 由一个字符串识别,大小写敏感,命名规则为x.y.z,且有继承关系,如x.y是x.y.z的父亲。
  • rootLogger是所有logger祖先。(1,它总是存在;2,它不可通过名字获得)。

       Logger对象生成方式: Logger.getRootLogger();

                                     Logger.getLogger(MyApp.class);

       或者生成 org.apache.commons.logging.Log,生成方式为 LogFactory.getLog(MyApp.class);

       (此时需要引入commons-logging.jar包,通常引入log4j.jar包时也引入此jar包)

       目前 Logger.getLogger(Class clazz) 被认为最理智的命名方式。

     

      Logger Level 日志级别,子类日志级别继承父类日志级别。

      日志级别越低,日志信息越详细。如在debug级别下,可以输出所有日志信息,在info级别下则不能输出debug信息。

      具体级别顺序如下:

      Level.ALL < Level.DEBUG < Level.INFO < Level.WARN <Level.ERROR < Level.FATAL < Level.OFF

     

    Appender 日志输出信息目的地

    一个Logger可以有一个或多个Appender,每一个Appender都可以定义自己的日志文件输出目的地。

    ConsoleAppender可以把日志信息输出到控件台。

    FileAppender 可以把日志信息输出到一个指定日志文件中去。

    RollingFileAppender可以把日志输入到一个指定文件中,不同的是该文件有大小的限制。

    除之之外,还可把日志文件输出到GUI组件、套接字(SocketAppender)、NT事件记录器(NTEventLogAppender)、UNIX Syslog(SyslogAppender) 守护进程中去。

     

    Layout 日志格式化器

    PatternLayout 类似于C语言中printf函数中格式控件字符控制日志文件的输出格式。

    输出参数格式为是 %+[format modifiers]+conversion character

    format modifiers 用来控制字符串长度及字符串左右补值。

    如:

    20 表示最小宽度20个字符,不足补空格,默认右对齐。

    -20 表示最小宽度20个字符,“-”表示左对齐。

    .30 表示最大宽度30个字符,将过30将左边的截取前30个字符,如不超过30个字符,也不补空格。

    conversion character 用为控制输入内容。

    %p 日志信息的优先级 [DEBUG,INFO,ERROR,WARN,ERROR,FATAL]

    %d 时间,可以设置为 %d{yyy MMM dd HH:mm:ss,SSS}

    %r 耗费秒数

    %m 日志具体信息

    %n 输出换行符

     

    log4j 配置文件 log4j.properties

    //1,配置Logger,格式为 log4j.rootLogger = [ level ] , appenderName1, appenderName2, …

    log4j.rootLogger = DEBUG,stdout

    //2,配置Appender 格式为 log4j.appender.appenderName = fully.qualified.name.of.appender.class 

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

    //3,配置Appender参数 格式为

    //4,配置Layout

    log4j.appender.stdout.layout = org.apache.log4j.Pattern

    //5,配置 Layout 参数

    log4j.appender.stdout.layout.ConversionPattern = %m%n

     

    文章参考内容:

    Apache log4j 学习笔记 http://heavyz.sourceforge.net/homepage/homepage_zh/comp/notes/log4j.html

    log4j配置详解 http://bbs.chinaunix.net/thread-1621517-1-1.html

    log4j使用总结 http://kdboy.javaeye.com/blog/208851

    如何使用log4j http://www.blogjava.net/rickhunter/articles/28133.html

  • posted @ 2010-09-02 02:42  LeoLWang  阅读(1474)  评论(0)    收藏  举报