logback.xml 5.63 KB
<?xml version="1.0" encoding="utf-8" ?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!-- 定义日志文件 输入位置 -->
    <property name="logPath" value="d:/wg_log" />
    <!-- 日志最大的历史 30天 -->
    <property name="maxHistory" value="600"/>

    <!-- 配置项, 通过此节点配置日志输出位置(控制台、文件、数据库)、输出格式等-->
    <!-- ConsoleAppender代表输出到控制台 -->
    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">
        <!-- layout代表输出格式 -->
        <layout class="ch.qos.logback.classic.PatternLayout">
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
        </layout>
    </appender>
    <!-- 日志输出文件 -->
    <appender name="orderSuccessInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} -%msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <timeBasedFileNamingAndTriggeringPolicy class="com.sincere.weigeng.logs.MyTimeBasedFileNamingAndTriggeringPolicy">
                <multiple>1</multiple>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 输出路径 -->
            <fileNamePattern>${logPath}/info/orderSuccess/%d{yyyy-MM-dd HH}.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
    </appender>
    <appender name="orderFailInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} -%msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <timeBasedFileNamingAndTriggeringPolicy class="com.sincere.weigeng.logs.MyTimeBasedFileNamingAndTriggeringPolicy">
                <multiple>1</multiple>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 输出路径 -->
            <fileNamePattern>${logPath}/info/orderFail/%d{yyyy-MM-dd HH}.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
    </appender>
    <appender name="heartBeatLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} -%msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <timeBasedFileNamingAndTriggeringPolicy class="com.sincere.weigeng.logs.MyTimeBasedFileNamingAndTriggeringPolicy">
                <multiple>1</multiple>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 输出路径 -->
            <fileNamePattern>${logPath}/info/heartBeat/%d{yyyy-MM-dd HH}.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
    </appender>
    <appender name="kaoInfoInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} -%msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <timeBasedFileNamingAndTriggeringPolicy class="com.sincere.weigeng.logs.MyTimeBasedFileNamingAndTriggeringPolicy">
                <multiple>1</multiple>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 输出路径 -->
            <fileNamePattern>${logPath}/info/kaoInfo/%d{yyyy-MM-dd HH}.log</fileNamePattern>
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
    </appender>


    <!-- 特殊记录Error日志 -->
    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 只记录ERROR级别日志,添加范围过滤,可以将该类型的日志特殊记录到某个位置 -->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger -%msg%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <timeBasedFileNamingAndTriggeringPolicy class="com.sincere.weigeng.logs.MyTimeBasedFileNamingAndTriggeringPolicy">
                <multiple>1</multiple>
            </timeBasedFileNamingAndTriggeringPolicy>
            <fileNamePattern>${logPath}/infoError/${PROJECT_NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- 日志最大的历史 60天 -->
            <maxHistory>${maxHistory}</maxHistory>
        </rollingPolicy>
    </appender>

    <!-- 不同的业务逻辑日志打印到指定文件夹-->
    <logger name="orderSuccess" additivity="false" level="INFO">
        <appender-ref ref="orderSuccessInfoLog"/>
    </logger>
    <logger name="orderFail" additivity="false" level="INFO">
        <appender-ref ref="orderFailInfoLog"/>
    </logger>
    <logger name="kaoInfo" additivity="false" level="INFO">
        <appender-ref ref="kaoInfoInfoLog"/>
    </logger>
    <logger name="heartBeat" additivity="false" level="INFO">
        <appender-ref ref="heartBeatLog"/>
    </logger>
    <logger name="error" additivity="false" level="ERROR">
        <appender-ref ref="fileErrorLog"/>
    </logger>

    <root level="info">
        <appender-ref ref="consoleLog" />
        <appender-ref ref="orderSuccessInfoLog" />
        <appender-ref ref="orderFailInfoLog" />
        <appender-ref ref="kaoInfoInfoLog" />
        <appender-ref ref="heartBeatLog" />
    </root>

    <root level="error">
        <appender-ref ref="fileErrorLog" />
    </root>
</configuration>