log4j2配置篇

作者: high_m | 来源:发表于2017-09-18 15:58 被阅读0次

    log4j的配置可以通过以下四种方式完成:

    • 通过XML, JSON, YAML, 或者 properties格式的配置文件。
    • 通过ConfigurationFactory 和 Configuration的实现。
    • 通过Configuration 暴露的接口为默认配置增加实现组件。
    • 通过内部的Logger类方法调用。
      本文只对第一种实现方式做粗略阐述。

    自动发现配置

    log4j启动时会自动寻找到所有的ConfigurationFactory 插件并进行优先级排序,log4j包括四种ConfigurationFactory 实现,针对JSON、YAML、properties、XML各一个。优先级排序如下:

    log4j.configurationFile
    log4j2-test.properties
    log4j2-test.yaml(log4j2-test.yml)
    log4j2-test.json(log4j2-test.jsn)
    log4j2-test.xml
    log4j2.properties
    log4j2.yaml(log4j2.yml)
    log4j2.json(log4j2.jsn)
    log4j2.xml
    DefaultConfiguration 
    

    如果你没有写配置文件,会如何?
    log4j会使用默认配置,其相关类是DefaultConfiguration.java,与其等价的xml文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN">
      <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
          <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
        </Console>
      </Appenders>
      <Loggers>
        <Root level="error">
          <AppenderRef ref="Console"/>
        </Root>
      </Loggers>
    </Configuration>
    

    日志输出级别是error,输出目的地是Console。这意味着只有error及以上水平的日志才会被输出到控制台上。


    配置文件解析

    就依然上面这个配置文件进行阐述,主要包括AppendersLoggers两个部分,Appenders主要说明日志的输出目的地,而Loggers主要说明都有哪些日志记录器。Loggers中一个根日志记录器Root,其他用户自定义的日志记录器(Logger 标签)都会继承它,日志记录器中AppenderRef标签会说明此日志记录器输出的日志会流向哪里(目的地在Appenders标签中定义)。

    相关文章

    相关文章

      网友评论

        本文标题:log4j2配置篇

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