院儿饯 发表于 2025-6-9 08:53:21

SpringBoot整合Log4j2日志框架

SpringBoot底层默认使用logback日志框架。
切换使用Log4j2日志框架。
pom.xml配置

<dependency>
    <groupId>org.springframework.boot</groupId>
    spring-boot-starter-web</artifactId>
       
    <exclusions>
      <exclusion>
            spring-boot-starter-logging</artifactId>
            <groupId>org.springframework.boot</groupId>
      </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    spring-boot-starter-log4j2</artifactId>
</dependency>log4j2-spring.xml

文件命名固定log4j2-spring.xml,让SpringBoot加载配置文件。
文件名为log4j2.xml,文件将绕过SpringBoot直接调用日志框架。
<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="debug" monitorInterval="180" packages="com.evan" disableAnsi="false" >
   
    <properties>
      
      <property name="LOG_HOME">./logs</property>
      
      
      
      
      
      <property name="PATTERN">%date{YYYY-MM-dd HH:mm:ss,SSS} %level [%thread][%file:%line] - %msg%n%throwable</property>
    </properties>
   
      
      <Console name="consoleAppender" target="SYSTEM_OUT">
            
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            
            <PatternLayout
                  pattern="%style{%d{ISO8601}}{bright,green} %highlight{%-5level} [%style{%t}{bright,blue}] %style{%C{}}{bright,yellow}: %msg%n%style{%throwable}{red}"
                     noConsoleNoAnsi="false"/>
      </Console>

      
      
      <RollingFile name="allFileAppender"
                     fileName="${LOG_HOME}/all.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/all-%d{yyyy-MM-dd}-%i.log.gz">
            
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
               
               
               
                <SizeBasedTriggeringPolicy size="100MB"/>
               
                <TimeBasedTriggeringPolicy/>
            </Policies>
            
            <DefaultRolloverStrategy max="100"/>
      </RollingFile>

      
      <RollingFile name="debugFileAppender"
                     fileName="${LOG_HOME}/debug.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
               
                <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
               
               
               
                <SizeBasedTriggeringPolicy size="100MB"/>
               
                <TimeBasedTriggeringPolicy/>
            </Policies>
            
            <DefaultRolloverStrategy max="100"/>
      </RollingFile>

      
      <RollingFile name="infoFileAppender"
                     fileName="${LOG_HOME}/info.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
               
                <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
               
               
               
                <SizeBasedTriggeringPolicy size="100MB"/>
               
                <TimeBasedTriggeringPolicy/>
            </Policies>
            
            
      </RollingFile>

      
      <RollingFile name="warnFileAppender"
                     fileName="${LOG_HOME}/warn.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
               
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
               
               
               
                <SizeBasedTriggeringPolicy size="100 MB"/>
               
                <TimeBasedTriggeringPolicy/>
            </Policies>
            
            <DefaultRolloverStrategy max="100"/>
      </RollingFile>

      
      <RollingFile name="errorFileAppender"
                     fileName="${LOG_HOME}/error.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
            
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
               
               
               
                <SizeBasedTriggeringPolicy size="100 MB"/>
               
                <TimeBasedTriggeringPolicy/>
            </Policies>
            
            <DefaultRolloverStrategy max="100"/>
      </RollingFile>

      
      <RollingFile name="errorJsonAppender"
                     fileName="${LOG_HOME}/error-json.log"
                     filePattern="${LOG_HOME}/error-json-%d{yyyy-MM-dd}-%i.log.gz">
            <JSONLayout compact="true" eventEol="true" locationInfo="true"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="100 MB"/>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
      </RollingFile>
    </Appenders>

    <Loggers>
      
      <Root level="debug">
            
            
            
            
            
            
            
      </Root>

      <Logger name="springfox" level="INFO"/>
      
      <Logger name="org.springframework" level="info"/>
      
      <Logger name="druid.sql.Statement" level="info"/>
      
      <Logger name="com.mybatis" level="warn"/>
      <Logger name="org.hibernate" level="warn"/>
      <Logger name="com.zaxxer.hikari" level="info"/>
      <Logger name="org.quartz" level="info"/>
      <Logger name="com.ym.learn" level="debug"/>
    </Loggers>

</Configuration>控制台日志输出信息


日志文件生成


说明:日志文件生成在当前项目下

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: SpringBoot整合Log4j2日志框架