lo4j2.xml 配置文件

此博客详细介绍了Log4j2的配置文件,包括监控间隔、日志级别、格式化输出、文件路径、名称及输出级别。它还展示了如何配置不同的日志文件(如debug、info、warn和error)进行滚动存储,基于时间或文件大小,并设置了过滤器以确保不同级别的日志分别记录。此外,还指定了不同包的日志级别,以优化日志记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lo4j2.xml 配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration status="WARN" monitorInterval="60">
    <Properties>
        <Property name="PID">????</Property>
        <Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
        <Property name="LOG_LEVEL_PATTERN">%5p</Property>
        <Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
        <!-- 控制台日志格式化,包含颜色-->
        <Property name="CONSOLE_LOG_PATTERN">%clr{%d{${LOG_DATEFORMAT_PATTERN}}}{faint} %clr{${LOG_LEVEL_PATTERN}} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
        <!-- 日志文件默认输出格式,不带行号输出(行号显示会影响日志输出性能);%C:大写,类名;%M:方法名;%m:错误信息;%n:换行 -->
        <Property name="FILE_LOG_PATTERN">%d{${LOG_DATEFORMAT_PATTERN}} ${LOG_LEVEL_PATTERN} ${sys:PID} --- [%t] %-40.40c{1.} : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
        <!-- 日志存储路径 -->
        <property name="FILE_PATH" value="${ctx:log4j2.output.path}" />
        <!-- 日志存储名称 -->
        <property name="FILE_NAME" value="${ctx:log4j2.output.name}" />
        <!-- 日志默认输出日志文件级别 -->
        <property name="OUTPUT_LOG_LEVEL" value="${ctx:log4j2.output.level}" />
    </Properties>

    <!--定义appender -->
    <Appenders>
        <!-- 默认的控制台日志输出,一般生产环境都是后台启动,这个没太大作用 -->
        <Console name="Console" target="SYSTEM_OUT" follow="false">
            <PatternLayout pattern="${sys:CONSOLE_LOG_PATTERN}" />
        </Console>
        <Async name="Async">
            <AppenderRef ref="Console"/>
        </Async>

        <!-- debugger日志 -->
        <RollingFile name="DebugLogger" fileName="${FILE_PATH}/${FILE_NAME}-debug.log" filePattern="${FILE_PATH}/debug/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="DEBUG"/>
                <ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                <!--根据文件大小来滚动-->
                <SizeBasedTriggeringPolicy size="20 MB"/>
            </Policies>
            <!-- 默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="1"/>
        </RollingFile>

        <!-- info日志 -->
        <RollingFile name="InfoLogger" fileName="${FILE_PATH}/${FILE_NAME}-info.log" filePattern="${FILE_PATH}/info/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="INFO"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                <!--根据文件大小来滚动-->
                <SizeBasedTriggeringPolicy size="20 MB"/>
            </Policies>
            <!-- 默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="3"/>
        </RollingFile>

        <!-- warn日志 -->
        <RollingFile name="WarnLogger" fileName="${FILE_PATH}/${FILE_NAME}-warn.log" filePattern="${FILE_PATH}/warn/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="WARN"/>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                <!--根据文件大小来滚动-->
                <SizeBasedTriggeringPolicy size="20 MB"/>
            </Policies>
            <!-- 默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="5"/>
        </RollingFile>

        <!-- error日志 -->
        <RollingFile name="ErrorLogger" fileName="${FILE_PATH}/${FILE_NAME}-error.log" filePattern="${FILE_PATH}/error/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            </Filters>
            <PatternLayout pattern="${sys:FILE_LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1 hour-->
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
                <!--根据文件大小来滚动-->
                <SizeBasedTriggeringPolicy size="20 MB"/>
            </Policies>
            <!-- 默认为最多同一文件夹下7个文件开始覆盖-->
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>

    </Appenders>

    <Loggers>
        <Logger name="org.mybatis" level="debug"/>
        <Logger name="com.java" level="debug"/>
        <Logger name="org.apache.catalina.startup.DigesterFactory" level="error" />
        <Logger name="org.apache.catalina.util.LifecycleBase" level="error" />
        <Logger name="org.apache.coyote.http11.Http11NioProtocol" level="warn" />
        <Logger name="org.apache.sshd.common.util.SecurityUtils" level="warn"/>
        <Logger name="org.apache.tomcat.util.net.NioSelectorPool" level="warn" />
        <Logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="error" />
        <Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
        <Logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
        <Logger name="springfox.documentation.swagger2" level="off"/>
        <Logger name="io.swagger.models.parameters" level="off"/>

        <!-- includeLocation 打印行号,如果这里不设置,就算%L 也不会打印行号 -->
        <Root level="${OUTPUT_LOG_LEVEL}" includeLocation="true">
            <appender-ref ref="Async"/>
            <appender-ref ref="DebugLogger"/>
            <appender-ref ref="InfoLogger"/>
            <appender-ref ref="WarnLogger"/>
            <appender-ref ref="ErrorLogger"/>
        </Root>

    </Loggers>
</configuration>

spring-boot项目木人文件名为 log4j2-spring.xml
转载或分享请加上原地址!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值