log4j2.xml

发布时间 2023-03-22 21:16:57作者: 小贤看世界

log4j2.xml依赖

 <!--全局排除spring-boot-starter-logging内的所有依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>*</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- 引入Log4j2-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

resources/log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <appenders>
        <!-- 控制台输出 -->
        <console name="Console" target="SYSTEM_OUT">
            <PatternLayout
                pattern="%d{HH:mm:ss.SSS} [%t] %-5level %class %L %M -- %msg%n" />
        </console>

        <!-- fileName:输出路径 filePattern:命名规则 -->
        <!-- trace<debug<info<warn<error -->
        <!--只记录debug级别日志-->
        <RollingFile name="RollingFileDebug"
            fileName="D:/logs/debug.log"
            filePattern="D:/logs/$${date:yyyy-MM-dd}/debug-%d{yyyy-MM-dd}-%i.log">
            <!--过滤器-->
            <Filters>
                <!--debug级别及以上-->
                <ThresholdFilter level="DEBUG"/>
                <!--拒绝INFO日志-->
                <ThresholdFilter level="INFO" onMatch="DENY"
                    onMismatch="NEUTRAL" />
            </Filters>
            <!-- 输出格式 -->
            <PatternLayout
                pattern="%d{HH:mm:ss.SSS} [%t] %-5level %class{36} %L %M - %msg%n" />

            <Policies>
                <!-- 单个日志文件的大小限制 -->
                <SizeBasedTriggeringPolicy size="100 MB" />
            </Policies>

            <!-- 最多保留20个日志文件 -->
            <DefaultRolloverStrategy max="20" />
        </RollingFile>

        <!--只记录info级别日志-->
        <RollingFile name="RollingFileInfo"
            fileName="D:/logs/info.log"
            filePattern="D:/logs/$${date:yyyy-MM-dd}/info-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="INFO" />
                <ThresholdFilter level="WARN" onMatch="DENY"
                    onMismatch="NEUTRAL" />
            </Filters>
            <!-- 输出格式 -->
            <PatternLayout
                pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n" />
            <Policies>
                <!-- SizeBasedTriggeringPolicy单个文件的大小限制 -->
                <SizeBasedTriggeringPolicy size="100 MB" />
            </Policies>
            <!-- DefaultRolloverStrategy同一个文件下的最大文件数 -->
            <DefaultRolloverStrategy max="20" />
        </RollingFile>

        <!--只记录warn级别日志-->
        <RollingFile name="RollingFileWarn"
            fileName="D:/logs/warn.log"
            filePattern="D:/logs/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="WARN" />
                <ThresholdFilter level="ERROR" onMatch="DENY"
                    onMismatch="NEUTRAL" />
            </Filters>
            <PatternLayout
                pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n" />
            <Policies>
                <!--<TimeBasedTriggeringPolicy modulate="true" interval="1"/> -->
                <SizeBasedTriggeringPolicy size="100 MB" />
            </Policies>
            <!--最多保留20个日志文件 -->
            <DefaultRolloverStrategy max="20" min="0" />
        </RollingFile>

        <!--只记录error级别日志-->
        <RollingFile name="RollingFileError"
            fileName="D:/logs/error.log"
            filePattern="D:/logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="ERROR" />
                <ThresholdFilter level="FATAL" onMatch="DENY"
                    onMismatch="NEUTRAL" />
            </Filters>
            <PatternLayout
                pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n" />
            <Policies>
                <!--<TimeBasedTriggeringPolicy modulate="true" interval="1"/> -->
                <SizeBasedTriggeringPolicy size="100 MB" />
            </Policies>
            <!--最多保留20个日志文件 -->
            <DefaultRolloverStrategy max="20" min="0" />
        </RollingFile>
    </appenders>


    <loggers>
        <!--同步日志配置,开发使用使用-->
        <root level="DEBUG">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileDebug"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
        </root>

        <!--不做打印的日志,只有error打印-->
        <logger name="org.springframework" level="error"></logger>
        <logger name="org.mybatis" level="error"></logger>
        <logger name="org.apache.ibatis" level="error"></logger>
        <!--swagger-->
        <logger name="springfox.documentation" level="error"></logger>

        <!--后台异步线程记录-->
        <!--异步日志配置,上线使用-->
        <!--<AsyncRoot level="info" includeLocation="true">-->
            <!--<appender-ref ref="RollingFileDebug"/>-->
            <!--<appender-ref ref="RollingFileInfo"/>-->
            <!--<appender-ref ref="RollingFileWarn"/>-->
            <!--<appender-ref ref="RollingFileError"/>-->
        <!--</AsyncRoot>-->
        <!--<AsyncLogger name="org.springframework" level="error" includeLocation="true">-->
            <!--<AppenderRef ref="RollingFileError"></AppenderRef>-->
        <!--</AsyncLogger>-->
        <!--<AsyncLogger name="org.mybatis" level="error" includeLocation="true">-->
            <!--<AppenderRef ref="RollingFileError"></AppenderRef>-->
        <!--</AsyncLogger>-->
        <!--<AsyncLogger name="com.alibaba.druid" level="error"  includeLocation="true">-->
            <!--<AppenderRef ref="RollingFileError"></AppenderRef>-->
        <!--</AsyncLogger>-->

    </loggers>
</configuration>