log4j

作者: 币来币往 | 来源:发表于2019-05-13 10:09 被阅读0次

    Log4j 包括三个核心对象:
    Logger对象: 负责获取日志信息
    Layout对象: 用指定形式格式化日志信息对象
    Appender对象: 负责将日志信息发布到不同的目的地,如文件,控制台,网络套接字等

    Logger对象收集到日志信息后,传递给Appender对象,Appender对象根据Layout对象对日志信息进行格式化,然后写入Appender对象指定的目的地。

    Log4j 使用log4j.properties作为它的配置文件
    log4j.properties 的语法如下:

    定义appender为appenderName, 如果想定义多个appender,可以在后面继续追加,用“,”隔开,如 appender1, appender12,...

    第一个参数DEBUG定义的是log的级别: 可以取值为TRACE, DEBUG, INFO, WARN, ERROR, FATAL, ALL

    其顺序为ALL < DEBUG < INFO < WARN < ERROR < FATAL < OFF;当指定level为DEBUG时,可以打印所以比它level小得log

    Log4j.rootLogger = DEBUG, appenderName

    上面一行指定了appender的name,下面需要对其进行具体定义

    将appender定义为FileAppender,即输出到文件,具体文件为log.out

    appender一般常用的就是FileAppender and ConsoleAppender, JDBCAppender

    Log4j.appender.appenderName=org.apache.Log4j.FileAppender
    Log4j.appender.appenderName.File = dir/log.out

    我们还可以为appender定义layout

    Layout可以为PatternLayout, DateLayout, HTMLLayout, SimpleLayout, XMLLayout

    Log4j.appender.appenderName.layout = org.apache.Log4j.PatternLayout
    Log4j.appender.appenderName.layout.conversionPattern=%m%n

    这里我们有必要介绍一下conversionPattern:
    它指定了我们记录日志的格式,默认为%r [%t] %p %c %x - %m%n
    c: 使用它为输出的日志事件分类,比如对于分类 "a.b.c",模式 %c{2} 会输出 "b.c"
    C: 使用它输出发起记录日志请求的类的全名,比如wang.jaler.HelloWorld, 模式%C{1} 输出 HelloWorld
    M: 发起日志请求的方法名
    d: 使用它输出记录日志的日期,比如 %d{HH:mm:ss,SSS} 或 %d{dd MMM yyyy HH:mm:ss,SSS}
    m: 我们记录的具体信息内容
    n: 输出平台对应的换行符
    t: 输出生成日志事件的线程名

    appender定义完后,可以将其添加到Logger对象:
    Log4j.logger.[logger-name] = level, appender1, appender2...

    相关文章

      网友评论

          本文标题:log4j

          本文链接:https://www.haomeiwen.com/subject/nrakaqtx.html