slf4j + log4j2配置日志引擎

maven包依赖引用

<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-api</artifactId>
   <version>2.2</version>
</dependency>
<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-core</artifactId>
   <version>2.2</version>
</dependency>
<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-slf4j-impl</artifactId>
   <version>2.2</version>
</dependency>
<dependency>
   <groupId>org.apache.logging.log4j</groupId>
   <artifactId>log4j-jcl</artifactId>
   <version>2.2</version>
</dependency>
<dependency>
	<groupId>org.slf4j</groupId>
	<artifactId>slf4j-api</artifactId>
	<version>1.7.7</version>
</dependency>

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<!-- 日志级别: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- 
参数解析:
  %t:线程名称
  %p:日志级别
  %c:日志消息所在类名
  %m:消息内容
  %M:输出执行方法
  %d:发生时间,%d{yyyy-MM-dd HH:mm:ss,SSS},实际输出如:2019-12-13 10:34:28,921
  %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
  %L:代码中的行数
  %n:换行
-->
<Configuration status="error">
  <Properties>
    <!-- 配置日志文件输出目录,此配置将日志输出到tomcat根目录下的logs文件夹, 也可以选择配置为${sys:user.home}/logs,是指向当前用户目录下的logs文件夹 -->
    <Property name="LOG_HOME">${sys:catalina.home}/logs</Property>
  </Properties>
  <Appenders>
    <Console name="Console" target="SYSTEM_OUT">
      <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n" />
    </Console>
    <RollingFile name="RollingFileDebug" fileName="${LOG_HOME}/debug.log"
      filePattern="${LOG_HOME}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log">
      <ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY" />
      <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n" />
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="10 MB" />
      </Policies>
    </RollingFile>
    <RollingFile name="RollingFileInfo" fileName="${LOG_HOME}/info.log"
      filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
      <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
      <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
      <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n" />
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="10 MB" />
      </Policies>
    </RollingFile>
    <RollingFile name="RollingFileWarn" fileName="${LOG_HOME}/warn.log"
      filePattern="${LOG_HOME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
      <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY" />
      <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n" />
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="10 MB" />
      </Policies>
    </RollingFile>
    <RollingFile name="RollingFileError" fileName="${LOG_HOME}/error.log"
      filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
      <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY" />
      <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n" />
      <Policies>
        <TimeBasedTriggeringPolicy />
        <SizeBasedTriggeringPolicy size="10 MB" />
      </Policies>
    </RollingFile>
  </Appenders>
  <Loggers>
    <Root level="ALL">
      <AppenderRef ref="Console" />
      <AppenderRef ref="RollingFileDebug" />
      <AppenderRef ref="RollingFileInfo" />
      <AppenderRef ref="RollingFileWarn" />
      <AppenderRef ref="RollingFileError" />
    </Root>
  </Loggers>
</Configuration>

log4j 2.x manual configuration

发布了64 篇原创文章 · 获赞 34 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/svygh123/article/details/103528416