log4j2总结

54 阅读1分钟

Apache Log4j 2 是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并参考了Logback中优秀的设计,同时修复了Logback架构中的一些问题。被誉为是目前最优秀的Java日志框架;企业中通常使用SLF4j门面+Log4j2来记录日志

一、pom.xml配置

<dependency>
   <groupId>com.plumelog</groupId>
   <artifactId>plumelog-log4j2</artifactId>
</dependency>

二、log4j2配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="WARN" monitorInterval="60" strict="true">
  <properties>
    <property name="logback.file.path" value="/app/logs"/>
    <property name="charset">UTF-8</property>
    <Property name="date_pattern">yyyy-MM-dd HH:mm:ss,SSS</Property>
    <property name="pattern">%d{${date_pattern}} %clr{[%-5level]} %clr{[${sys:applicationName}]}{yellow} %clr{[%X{requestId}]}{magenta} %clr{[%thread]}{blue} [%clr{%C{1}#%M:%L}{red}] - %m%n%exception</property>
    <property name="maxSize">100MB</property><!-- 超出100M生成新的文件 -->
    <property name="maxCount">7</property><!-- 超出7个文件删除,每天生成一个日志文件,也就是最多保留7天 -->
  </properties>

  <appenders>
    <!--console :控制台输出的配置 -->
    <Console name="console" target="SYSTEM_OUT">
      <PatternLayout pattern="${pattern}" charset="${charset}" />
    </Console>

    <RollingRandomAccessFile name="rollingFile" immediateFlush="true" fileName="${logback.file.path}/sout.log"
                             filePattern="${logback.file.path}/sout.%d{yyyy-MM-dd}-%i.gz" ignoreExceptions="false">
      <PatternLayout pattern="${pattern}" charset="${charset}" />
      <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
      <Policies>
        <TimeBasedTriggeringPolicy modulate="true" interval="1" />
        <SizeBasedTriggeringPolicy size="${maxSize}" />
      </Policies>
      <!-- 超出数量就删除备份,防止日志文件太大 -->
      <DefaultRolloverStrategy max="${maxCount}" />
    </RollingRandomAccessFile>
  </appenders>

  <loggers>
    <!--全异步输出info级以上的日志信息--> 
    <asyncRoot level="INFO" includeLocation="true" additivity="false">
      <!-- 本地开发打开控制台输出,服务器上可以关闭 -->
      <AppenderRef ref="console" />
      <AppenderRef ref="rollingFile" />
    </asyncRoot>
  </loggers>
</configuration>

[# 一文带你彻底掌握Log4j2](www.cnblogs.com/antLaddie/p…)