Java log4j日志记录工具配置说明

时间:2021-08-28 04:36:00
    Java log4j日志记录工具配置说明


--- 以下是示例配置信息 ---

log4j.rootLogger = debug, stdout, logfile

log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.err
log4j.appender.stdout.layout = org.apache.log4j.SimpleLayout

log4j.appender.logfile = org.apache.log4j.FileAppender
log4j.appender.logfile.File = jbit.log
log4j.appender.logfile.layout = org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern =%d{yyyy-MM-dd HH\:mm\:ss} %l %p %F %m %n


--------------------
1..输出级别
    log4j.rootLogger = debug, stdout, logfile
    其中,dubug指的是日志记录器(Logger)的输出级别,主要输出级别含义如下。

    1.fatal<致命的,毁灭性的>:指出严重的错误事件将会导致应用程序的退出。
    2.error<错误,过失>:指虽然发生错误事件,但仍不会影响系统继续运行。
    3.warn<警告,提醒;通知>:表明会出现潜在错误的情形
    4.info< 信息;情报>:在粒度级别上指明消息,强调应用程序的运行过程。
    5.debug<调试;除错>:指出粒度信息事件,对调试应用程序是非常有帮助的。

    各个输出级别优先级
        fatal > error > warn > info > debug
    日志记录器(Logger)将只输出那些级别高于或等于它的信息,例如,级别为debug,将输出fatal,error,warn,info,debug级别的信息,而级别为error,将只输出fatal,error级别的日志信息。
--------------------

2..日志输出目的地(Appender)
    log4j.rootLogger = debug, stdout, logfile

    其中,stdout, logfile 指的是日志输出目的地的名字
    log4j允许记录日志到多个输出目的地,一个输出目的地被称为一个Appender。
    
    log4j中最常用的Appender有以下两种:
    1.ConsoleAppender:输出日志到控制台。通过Target属性配置输出到System.out或者System.err,默认是System.out。
    2.FileAppender:输出日志事件到一个文件。通过File属性配置文件的路径及名称。
--------------------

3..日志布局类型 (Layout)
    Appender必须使用一个与之关联的布局类型Layout,用来指定它的输出样式。log4j中最常用的Layout有以下三种:
    1.HTMLLayout:格式化日志输出为HTML表格。
    2.SimpleLayout:以一种非常简单的方式格式化日志输出,它输出级别Level,然后跟着一个破折号"——",最后是日志消息。
    3.PatternLayout:根据指定的转换模式格式化日志输出,从而支持丰富多样的输出格式。需要配置layout.ConversionPattern属性,若没有配置该属性,则使用默认的转换模式。
--------------------

4..转换模式 ConversionPattern
    对于PatternLayout,需要配置layout.ConversionPattern属性,常用的配置参数及含义如下:
    1. %d <date>     用来设置输出日志的日期和时间,默认格式为 ISO8601 。也在其后指定格式,比如 %d{yyyy-MM-dd HH:mm:ss}。
    2. %m <message> 用来输出代码中指定的消息。
    3. %n <line>    用来输出一个回车换行符。
    4. %l <location>用来输出日志事件的发生位置,包括类名,发生的线程,以及在代码中的行数。
    5. %p <prior>    用来输出优先级,及debug,info,warn,fatal等。
    6. %F <file>    用来输出文件名。
    7. %M <Method>    用来输出方法名。
--------------------