日誌篇--企業級日誌logback配置

企業級日誌配置
不整沒用的,擼代碼

<?xml version="1.0" encoding="UTF-8" ?>
<configuration scan="true" scanPeriod="10 seconds" debug="false">
    <!-- set env -->
    <property name="LOGDROOT" value="${catalina.home}"/><!--tomcat目錄-->
    <property name="APP_NAME" value="XM"/><!--項目名稱-->
    <!--日誌路徑-->
    <property name="DEBUG_LOG_PATH" value="${LOGDROOT}/logs/${APP_NAME}_debug"/>
    <property name="INFO_LOG_PATH" value="${LOGDROOT}/logs/${APP_NAME}_info"/>
    <property name="WARN_LOG_PATH" value="${LOGDROOT}/logs/${APP_NAME}_warn"/>
    <property name="ERROR_LOG_PATH" value="${LOGDROOT}/logs/${APP_NAME}_error"/>
    <property name="DAY_LOG_PATH" value="${LOGDROOT}/logs/${APP_NAME}"/>
     <!--日誌輸出格式-->  
    <property name="LOG_PATTERN_CONSOLE"
              value="[%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c:%L] [%thread] [%X{traceId}] %m%n"/>
    <property name="LOG_PATTERN_FILE"
              value="[%d{yyyy-MM-dd HH:mm:ss.SSS} %5p %c:%L] [%thread] [%X{traceId}] %m%n"/>
    <property name="CALC_BILL_LOG_PATTERN_FILE" value="%m%n"/>
    <!--可選節點,控制保留的歸檔文件的最大數量,超出數量就刪除舊文件,假設設置每個月滾動,刪除之前的舊文件-->
    <property name="MAXHISTORY" value="30"/>
    <!--設置日誌存儲最大值-->
    <property name="MAXFILESIZE" value="500MB"/>

    <!-- 性能相關 -->
    <property name="PERF_LOG_PATH" value="${LOGDROOT}/logs/${APP_NAME}_perf"/>

    <!-- set context name -->
    <contextName>${APP_NAME}</contextName>

    <!-- console -->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder charset="UTF-8">
            <pattern>${LOG_PATTERN_CONSOLE}</pattern>
        </encoder>
    </appender>

    <!-- debug level -->
    <appender name="debug"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- file name -->
        <File>${DEBUG_LOG_PATH}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--output file name -->
            <fileNamePattern>${DEBUG_LOG_PATH}.%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <!-- MAXHISTORY days old files will be delete -->
            <maxHistory>${MAXHISTORY}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAXFILESIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>${LOG_PATTERN_FILE}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- info level -->
    <appender name="info"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${INFO_LOG_PATH}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${INFO_LOG_PATH}.%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <maxHistory>${MAXHISTORY}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAXFILESIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>${LOG_PATTERN_FILE}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- warn level -->
    <appender name="warn"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${WARN_LOG_PATH}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${WARN_LOG_PATH}.%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <maxHistory>${MAXHISTORY}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAXFILESIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>${LOG_PATTERN_FILE}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- error level -->
    <appender name="error"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${ERROR_LOG_PATH}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${ERROR_LOG_PATH}.%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <maxHistory>${MAXHISTORY}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAXFILESIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>${LOG_PATTERN_FILE}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 每日輸出 -->
    <appender name="day_log"
              class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${DAY_LOG_PATH}.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${DAY_LOG_PATH}.%d{yyyy-MM-dd}.%i.log
            </fileNamePattern>
            <maxHistory>${MAXHISTORY}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${MAXFILESIZE}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>${LOG_PATTERN_FILE}</pattern>
        </encoder>
    </appender>

    <!-- 異步輸出 -->
    <appender name="dayLogAsyncAppender" class="ch.qos.logback.classic.AsyncAppender">
        <includeCallerData>true</includeCallerData>
        <!-- 不丟失日誌.默認的,如果隊列的80%已滿,則會丟棄TRACT、DEBUG、INFO級別的日誌 -->
        <discardingThreshold>0</discardingThreshold>
        <!-- 更改默認的隊列的深度,該值會影響性能.默認值爲256 -->
        <queueSize>512</queueSize>
        <appender-ref ref="day_log"/>
    </appender>

    <!-- spring -->
    <logger name="org.springframework" level="info"/>

    <logger name="com.dome" level="info" additivity="false">
        <appender-ref ref="error"/>
        <appender-ref ref="warn"/>
        <appender-ref ref="console"/>
    </logger>

    <!-- lookback -->
    <logger name="lookbackLogger" level="info" additivity="false">
        <appender-ref ref="console"/>
        <appender-ref ref="lookbackAppender"/>
    </logger>
    <!-- root -->
    <root level="info">
        <appender-ref ref="info"/>
        <appender-ref ref="warn"/>
        <appender-ref ref="error"/>
        <appender-ref ref="console"/>
    </root>
</configuration>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章