0
点赞
收藏
分享

微信扫一扫

log4j日志配置

十里一走马 2023-09-13 阅读 28
<?xml version="1.0" encoding="UTF-8"?>
<!--设置log4j2的自身log级别为warn-->
<!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,
    当设置成trace时,你会看到log4j2内部各种详细输出-->
<!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数-->
<configuration status="warn" monitorInterval="30">

    <properties>
        <property name="logPath">/applog/wimiplus_rec/logs</property>
        <property name="PATTERN_LAYOUT">%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5p %c{1}:%L - %enc{%msg}{CRLF}%n</property>
    </properties>

    <!--先定义所有的appender-->
    <appenders>
        <!--这个输出控制台的配置-->
        <console name="Console" target="SYSTEM_OUT">
            <!--输出日志的格式-->
            <!-- <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n"/> -->
            <PatternLayout pattern="${PATTERN_LAYOUT}"/>
        </console>

        <!--==============================================================================文件会打印出所有日志信息-->
        <RollingFile name="StartLog" fileName="${logPath}/Start.log"
                     filePattern="${logPath}/Start-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="${PATTERN_LAYOUT}"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>

            <!-- 删除文件策略,log4j2.6版本才支持 当前版本2.17.2-->
            <DefaultRolloverStrategy max="20">
                <!--最保留7天内日志,根据FileName的模糊删除多余文件 -->
                <Delete basePath="${logPath}" maxDepth="2">
                    <IfFileName glob="start-*.log"/>
                    <IfLastModified age="7d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--=========================================================================打印 info 及以上,不打印操作日志-->
        <RollingFile name="RollingFileInfo" fileName="${logPath}/root.log"
                      filePattern="${logPath}/info-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <MarkerFilter marker = "operation_log" onMatch="DENY" onMismatch="NEUTRAL"/>
                <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${PATTERN_LAYOUT}"/>
            <!--每次大小超过size,则自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>

            <!-- 删除文件策略,log4j2.6版本才支持 当前版本2.17.2-->
            <DefaultRolloverStrategy max="20">
                <!--最保留7天内日志,根据FileName的模糊删除多余文件 -->
                <Delete basePath="${logPath}" maxDepth="2">
                    <IfFileName glob="root-*.log"/>
                    <IfLastModified age="7d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--===========================================================================打印 warn 及以上-->
        <RollingFile name="RollingFileWarn" fileName="${logPath}/warn.log"
                     filePattern="${logPath}/warn-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/>
                <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${PATTERN_LAYOUT}"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>

            <!-- 删除文件策略,log4j2.6版本才支持 -->
            <DefaultRolloverStrategy max="20">
                <Delete basePath="${logPath}" maxDepth="2">
                    <IfFileName glob="warn-*.log"/>
                    <IfLastModified age="7d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--==============================================================================打印 error-->
        <RollingFile name="RollingFileError" fileName="${logPath}/error.log"
                     filePattern="${logPath}/error-%d{yyyy-MM-dd}-%i.log">
            <ThresholdFilter level="ERROR"/>
            <PatternLayout pattern="${PATTERN_LAYOUT}" />
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>

            <!-- 删除文件策略,log4j2.6版本才支持 -->
            <DefaultRolloverStrategy max="20">
                <Delete basePath="${logPath}" maxDepth="2">
                    <IfFileName glob="error-*.log"/>
                    <IfLastModified age="7d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <!--======================================================================================打印 sql-->
        <RollingFile name="RollingFileSql" filename="${logPath}/sql.log"
                     filepattern="${logPath}/sql-%d{yyyyMMdd}-%i.log">
            <PatternLayout pattern="${PATTERN_LAYOUT}" />
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>
        </RollingFile>

        <!--==============================================================================打印操作日志 info 及以上-->
        <RollingFile name="RollingFileOperation" fileName="${logPath}/operation-hdsf.log"
                     filePattern="${logPath}/operation-hdsf-%d{yyyy-MM-dd}-%i.log">
            <Filters>
                <MarkerFilter marker = "operation_log" onMatch="ACCEPT" onMismatch="DENY"/>
                <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
                <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <PatternLayout pattern="${PATTERN_LAYOUT}" />
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            </Policies>

            <DefaultRolloverStrategy max="20">
                <Delete basePath="${logPath}" maxDepth="2">
                    <IfFileName glob="operation-hdsf-*.log"/>
                    <IfLastModified age="7d"/>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>
    </appenders>

    <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效-->
    <loggers>
        <!-- <logger name="org.springframework" level="warn" /> -->
        <!-- JPA日志级别控制,必须这样配置  -->
        <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="DEBUG"  />
        <logger name="org.hibernate.SQL" level="DEBUG" />
        <logger name="org.hibernate.engine.spi.QueryParameters" level="DEBUG" />

        <root level="INFO">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
            <appender-ref ref="StartLog"/>
            <appender-ref ref="RollingFileOperation"/>
        </root>
    </loggers>

</configuration>

举报

相关推荐

0 条评论