美文网首页
SpringBoot 引入log4j2日志框架

SpringBoot 引入log4j2日志框架

作者: code_搬运工 | 来源:发表于2022-07-07 10:51 被阅读0次
    1. 排除SpringBoot自带的日志框架
      pom.xml
         <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-starter-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
    
    
    1. 添加 log4j2依赖
     <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-log4j2</artifactId>
            </dependency>
    
    1. 使用lombok的@SIf4j 注解,省去配置生命log
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
    
    1. 在resource文件夹下添加log42.xml文件
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration status="OFF">
        <appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
                <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %-5level - %msg%xEx%n"/>
            </Console>
    
            <RollingFile name="RollingFileDebug" fileName="./logs/debug.log"
                         filePattern="logs/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">
                <Filters>
                    <ThresholdFilter level="DEBUG"/>
                    <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
                </Filters>
                <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %class{36} %L %M - %msg%xEx%n"/>
                <Policies>
                    <SizeBasedTriggeringPolicy size="100 MB"/>
                    <TimeBasedTriggeringPolicy/>
                </Policies>
                <DefaultRolloverStrategy>
                    <Delete basePath="logs" maxDepth="2">
                        <IfFileName glob="*/debug-*.log.gz" />
                        <IfLastModified age="30d" />
                    </Delete>
                </DefaultRolloverStrategy>
            </RollingFile>
    
            <RollingFile name="RollingFileInfo" fileName="./logs/info.log"
                         filePattern="logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
                <Filters>
                    <ThresholdFilter level="INFO"/>
                    <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
                </Filters>
                <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %class{36} %L %M - %msg%xEx%n"/>
                <Policies>
                    <SizeBasedTriggeringPolicy size="50 MB"/>
                    <TimeBasedTriggeringPolicy/>
                </Policies>
                <DefaultRolloverStrategy>
                    <Delete basePath="logs" maxDepth="2">
                        <IfFileName glob="*/info-*.log.gz" />
                        <IfLastModified age="30d" />
                    </Delete>
                </DefaultRolloverStrategy>
            </RollingFile>
    
            <RollingFile name="RollingFileWarn" fileName="./logs/warn.log"
                         filePattern="logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
                <Filters>
                    <ThresholdFilter level="WARN"/>
                    <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
                </Filters>
                <PatternLayout
                        pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %class{36} %L %M - %msg%xEx%n"/>
                <Policies>
                    <SizeBasedTriggeringPolicy size="50 MB"/>
                    <TimeBasedTriggeringPolicy/>
                </Policies>
                <DefaultRolloverStrategy>
                    <Delete basePath="logs" maxDepth="2">
                        <IfFileName glob="*/warn-*.log.gz" />
                        <IfLastModified age="30d" />
                    </Delete>
                </DefaultRolloverStrategy>
            </RollingFile>
    
            <RollingFile name="RollingFileError" fileName="./logs/error.log"
                         filePattern="logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
                <ThresholdFilter level="ERROR"/>
                <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss.SSS}] %class{36} %L %M - %msg%xEx%n"/>
                <Policies>
                    <SizeBasedTriggeringPolicy size="50 MB"/>
                    <TimeBasedTriggeringPolicy/>
                </Policies>
                <DefaultRolloverStrategy>
                    <Delete basePath="logs" maxDepth="2">
                        <IfFileName glob="*/error-*.log.gz" />
                        <IfLastModified age="30d" />
                    </Delete>
                </DefaultRolloverStrategy>
            </RollingFile>
        </appenders>
    
        <loggers>
            <root level="INFO">
                <appender-ref ref="Console"/>
                <appender-ref ref="RollingFileInfo"/>
                <appender-ref ref="RollingFileWarn"/>
                <appender-ref ref="RollingFileError"/>
                <appender-ref ref="RollingFileDebug"/>
            </root>
    
            <logger name="com.demo" level="DEBUG" />
    
        </loggers>
    </configuration>
    
    
    1. 在application.yml文件中设置log4j2.xml文件的路径
    logging:
      config: classpath:log4j2.xml
    
    1. 测试
    @Slf4j
    class DemoApplicationTests {
    
        @Test
        public void log4j2Test() {
    
            System.out.println("log4j2测试");
            log.info("info日志");
            log.warn("warn日志");
            log.debug("debug日志");
            log.error("error日志");
    
        }
    
    }
    

    相关文章

      网友评论

          本文标题:SpringBoot 引入log4j2日志框架

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