log4j日志打印配置

2023-12-14 23:31:06

文件名:log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration monitorInterval="5">
    <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->

    <!--变量配置-->
    <Properties>
        <property name="LOG_PATTERN" value="[%date{yyyy/MM/dd HH:mm:ss.SSS}] [%thread:%c{1}:%L] %-5level  - %msg%n"/>
        <!--%c{1} 表示日志位置的类名,%L当前行号, %msg日志信息,%n换行-->
        <property name="FILE_PATH" value="./logs"/>
        <property name="FILE_NAME" value="fileName日志文件名"/>
    </Properties>

    <appenders>

        <!--CONSOLE 打印-->
        <console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <!--控制是否在控制台输出-->
            <!--<ThresholdFilter level="INFO" onMatch="DENY" onMismatch="NEUTRAL"/>-->
        </console>

        <!-- INFO 文件记录-->
        <RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/${FILE_NAME}.log"
                     filePattern="${FILE_PATH}/${FILE_NAME}.log.%d{yyyy-MM-dd}">
            <!--控制台只输出level=info及以上级别的信息(onMatch),onMatch="DENY"表示不在控制台输出,其他的直接拒绝(onMismatch)-->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <!--interval属性用来指定多久滚动一次,默认是1d-->
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>

        <!-- ERROR-->
        <RollingFile name="RollingFileError" fileName="${FILE_PATH}/error.log"
                     filePattern="${FILE_PATH}/error.log.%d{yyyy-MM-dd}">
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${LOG_PATTERN}"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1"/>
            </Policies>
        </RollingFile>

    </appenders>

    <loggers>
        <!--过滤掉spring的一些无用的DEBUG信息-->
        <!--org.springframework这个类或包下所有日志的记录器进行了配置-->
        <Logger name="org.springframework" level="info" additivity="false">
            <AppenderRef ref="Console"/>
        </Logger>

        <root level="info">
        	<!--日志打印配置-->
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileError"/>
        </root>
    </loggers>
</configuration>

<?xml version="1.0" encoding="UTF-8"?>
<configuration status="INFO">
    <!-- 全局参数 -->
    <Properties>
        <Property name="pattern" value="[%date{yyyy/MM/dd HH:mm:ss.SSS}] [%thread] %-5level  - %msg%n"/>

        <!-- 改成各服务应用名称,变量 -->
        <Property name="serviceName" value="serviceName"/>
        <property name="errorName" value="error" />
        <property name="path" value="./logs/" />
    </Properties>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT" follow="true">
            <PatternLayout>
            	<!--引用了上面的日志输出格式pattern-->
                <pattern>${pattern}</pattern>
            </PatternLayout>
        </Console>

        <RollingFile name="errorFile" fileName="${path}/${errorName}.log" filePattern="${path}/${errorName}.log.%d{yyyy-MM-dd}">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${pattern}" />
            <Policies>
                <!-- TimeBasedTriggeringPolicy需要和filePattern配套使用,由于filePattern配置的时间最小粒度是dd天,所以表示每一天新建一个文件保存日志。SizeBasedTriggeringPolicy表示当文件大小大于指定size时
               ,生成新的文件保存日志。 -->
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
            </Policies>
        </RollingFile>


        <RollingFile name="infoFile" fileName="${path}/${serviceName}.log" filePattern="${path}/${serviceName}.log.%d{yyyy-MM-dd}">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="${pattern}" />
            <Policies>
                <TimeBasedTriggeringPolicy modulate="true" interval="1"/>
            </Policies>

        </RollingFile>
    </Appenders>


    <Loggers>
        <Logger name="org.springframework" level="INFO" />
        <Root level="INFO">
        	<!--<AppenderRef ref="console"></AppenderRef>不在控制台打印-->
            <AppenderRef ref="console"></AppenderRef>
            <AppenderRef ref="infoFile"></AppenderRef>
            <AppenderRef ref="errorFile"></AppenderRef>
        </Root>
    </Loggers>

</configuration>

文章来源:https://blog.csdn.net/weixin_47748878/article/details/134376285
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。