logback.xml 5.1 KB
Newer Older
苗卫卫 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
<?xml version="1.0" encoding="UTF-8"?>

<!--
根节点:configuration,包含以下三个属性
scan:当属性设置为true时,如果配置文件发生改变,将会被重新加载,默认true
scanPeriod:设置监测配置文件是否修改的时间间隔,没有给出时间单位,默认单位毫秒,scan为true,属性生效,默认时间间隔为1分钟
debug:true,打印logback内部日志信息,实时查看logback运行状态,默认false

子节点:
contextName:设置上下文名称,默认default
property:定义变量值,存在name、value属性
timestamp:时间戳字符串,存在key、dataPattern(遵循java.txt.SimpleDataFormat格式)属性
appender:写日志组件,必要属性name、class,以下子节点详解
    encoder:日志格式化
    filter:过滤器
-->
<configuration>
    <property name="LOG_HOME" value="./logs"></property>
    <property name="HISTORY_LOG_HOME" value="${LOG_HOME}/history"></property>
    <property name="LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] [%-5level] %logger{36} [%file:%line] - %msg%n"></property>

    <!--console log-->
    <appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%-5level:级别从左显示5个字符宽度,%t表示线程名,%msg:日志消息,%n是换行符-->
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level ${PID:-} --- [%t] %logger{50} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--info log-->
    <appender name="infoAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_HOME}/log.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${HISTORY_LOG_HOME}/%d{yyyy-MM}/log-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
            <maxHistory>30</maxHistory>
            <maxFileSize>200MB</maxFileSize>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
        <Append>false</Append>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <!--error log-->
    <appender name="errorAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_HOME}/error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
            <fileNamePattern>${HISTORY_LOG_HOME}/%d{yyyy-MM}/error-%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
            <maxHistory>5</maxHistory>
            <maxFileSize>100MB</maxFileSize>
            <totalSizeCap>1GB</totalSizeCap>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${LOG_PATTERN}</pattern>
        </encoder>
        <Append>false</Append>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
    </appender>


    <!--personalize appender start-->
    <appender name="startAppender" class="ch.qos.logback.core.FileAppender">
        <File>${LOG_HOME}/start.log</File>
        <Append>false</Append>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>${LOG_PATTERN}</Pattern>
        </layout>
        <!--        <Append>false</Append>-->
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <appender name="schedulerJobAppender" class="ch.qos.logback.core.FileAppender">
        <File>${LOG_HOME}/job.log</File>
        <Append>false</Append>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>${LOG_PATTERN}</Pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <appender name="processAppender" class="ch.qos.logback.core.FileAppender">
        <File>${LOG_HOME}/process.log</File>
        <Append>false</Append>
        <layout class="ch.qos.logback.classic.PatternLayout">
            <Pattern>${LOG_PATTERN}</Pattern>
        </layout>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <!--personalize logger start-->
    <logger name="com.boco.nbd.wios.microservice.Application" level="INFO" additivity="false">
        <appender-ref ref="startAppender"/>
    </logger>

    <logger name="com.boco.nbd.wios.task" level="INFO" additivity="false">
        <appender-ref ref="schedulerJobAppender"/>
    </logger>

    <logger name="com.boco.nbd.wios.flow.process" level="INFO" additivity="false">
        <appender-ref ref="processAppender"/>
    </logger>

    <root level="INFO">
        <appender-ref ref="consoleAppender"/>
        <appender-ref ref="infoAppender"/>
        <appender-ref ref="errorAppender"/>
    </root>
</configuration>