logback配置Demo

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">
    <property name="LOG_PATH" value="/data/logs/push-open-unicast-service"/>

    <property name="DEBUG_PATTERN" value="%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level [%logger{80}:%line] - %msg%n"/>
    <property name="INFO_PATTERN" value="%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{80} - %msg%n"/>
    <property name="MONITOR_PATTEN" value="%-10(%d{HH:mm:ss.SSS}) - %msg%n"/>

    <!-- 控制檯輸出 -->
    <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
        <Target>System.out</Target>
        <encoder>
            <pattern>%-20(%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread]) %-5level %logger{80} - %msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>DEBUG</level>
        </filter>
    </appender>

    <!-- DEBUG -->
    <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/debug.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/debug_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
        </rollingPolicy>
        <maxHistory>3</maxHistory>
        <encoder charset="UTF-8">
            <pattern>${DEBUG_PATTERN}</pattern>
        </encoder>
    </appender>
    <appender name="ASYNC_DEBUG" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="DEBUG"/>
    </appender>
    
    <!-- INFO -->
    <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/info.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/info_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
        </rollingPolicy>
        <maxHistory>3</maxHistory>
        <encoder charset="UTF-8">
            <pattern>${INFO_PATTERN}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_INFO" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="INFO"/>
    </appender>
    
    <!-- WARN -->
    <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/warn.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/warn_%d{yyyy-MM-dd-HH}.log.gz</FileNamePattern>
        </rollingPolicy>
        <maxHistory>48</maxHistory>
        <encoder charset="UTF-8">
            <pattern>${INFO_PATTERN}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_WARN" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="WARN"/>
    </appender>
    
    <!-- ERROR -->
    <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/error_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
        </rollingPolicy>
        <maxHistory>3</maxHistory>
        <encoder charset="UTF-8">
            <pattern>${INFO_PATTERN}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_ERROR" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="ERROR"/>
    </appender>
    
    <!-- DISCONF -->
    <appender name="DISCONF" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/error_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>${INFO_PATTERN}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_DISCONF" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="DISCONF"/>
    </appender>
    
    <!-- UNICAST TRACE -->
    <appender name="UNICAST_TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/unicast_trace.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/unicast_trace_%d{yyyy-MM-dd-HH}.log.gz</FileNamePattern>
        </rollingPolicy>
        <maxHistory>48</maxHistory>
        <encoder charset="UTF-8">
            <pattern>%msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_UNICAST_TRACE" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="UNICAST_TRACE"/>
    </appender>
    
    <!-- UNICAST NOTIFICATION -->
    <appender name="UNICAST_NOTIFICATION" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/unicast_push.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/unicast_push_%d{yyyy-MM-dd-HH}.log.gz</FileNamePattern>
        </rollingPolicy>
        <maxHistory>48</maxHistory>
        <encoder charset="UTF-8">
            <pattern>%msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_UNICAST_NOTIFICATION" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="UNICAST_NOTIFICATION"/>
    </appender>

    <!-- UNICAST DATAMESSAGE -->
    <appender name="UNICAST_DATA_MESSAGE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/unicast_push_datamsg.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/unicast_push_datamsg_%d{yyyy-MM-dd-HH}.log.gz</FileNamePattern>
        </rollingPolicy>
        <maxHistory>48</maxHistory>
        <encoder charset="UTF-8">
            <pattern>%msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_UNICAST_DATA_MESSAGE" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="UNICAST_DATA_MESSAGE"/>
    </appender>

    <!-- 統計 -->
    <appender name="UNICAST_MONITOR" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/monitor.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/monitor_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
        </rollingPolicy>
        <maxHistory>3</maxHistory>
        <encoder charset="UTF-8">
            <pattern>${MONITOR_PATTEN}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_UNICAST_MONITOR" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="UNICAST_MONITOR"/>
    </appender>

    <!-- 限量日誌 -->
    <appender name="LIMIT_LOGGER" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/limit.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/limit_%d{yyyy-MM-dd}.log.gz</FileNamePattern>
        </rollingPolicy>
        <maxHistory>3</maxHistory>
        <encoder charset="UTF-8">
            <pattern>${MONITOR_PATTEN}</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_LIMIT_LOGGER" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="LIMIT_LOGGER"/>
    </appender>

    <!-- 智能短信 -->
    <appender name="UNICAST_SMS_MESSAGE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/unicast_push_smsmsg.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/unicast_push_smsmsg%d{yyyy-MM-dd}.log.gz</FileNamePattern>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>%msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_UNICAST_SMS_MESSAGE" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="UNICAST_SMS_MESSAGE"/>
    </appender>

    <!-- 定時上報統計 -->
    <appender name="STAT" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_PATH}/stat.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <FileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}/stat%d{yyyy-MM-dd}.log.gz</FileNamePattern>
        </rollingPolicy>
        <encoder charset="UTF-8">
            <pattern>%msg%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <OnMismatch>DENY</OnMismatch>
            <OnMatch>ACCEPT</OnMatch>
        </filter>
    </appender>
    <appender name="ASYNC_STAT" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="STAT"/>
    </appender>

    <!-- 定義日誌 -->
    <logger name="org.apache" level="ERROR"/>
    <logger name="org.springframework" level="info"/>
    <logger name="com.baidu.disconf" level="debug"/>
    <logger name="io.netty" level="ERROR"/>
    <logger name="com.oppo.push" level="INFO"/>
    <logger name="com.baidu.disconf" additivity="false" level="INFO">
    	<appender-ref ref="ASYNC_DISCONF"/>
    </logger>
    <logger name="UNICAST_TRACE" additivity="false" level="INFO">
        <appender-ref ref="ASYNC_UNICAST_TRACE"/>
    </logger>
    <logger name="UNICAST_NOTIFICATION" additivity="false" level="INFO">
        <appender-ref ref="ASYNC_UNICAST_NOTIFICATION"/>
    </logger>
    <logger name="UNICAST_DATA_MESSAGE" additivity="false" level="INFO">
        <appender-ref ref="ASYNC_UNICAST_DATA_MESSAGE"/>
    </logger>
    <logger name="UNICAST_MONITOR" additivity="false" level="INFO">
        <appender-ref ref="ASYNC_UNICAST_MONITOR"/>
    </logger>
    <logger name="LIMIT_LOGGER" additivity="false" level="INFO">
        <appender-ref ref="ASYNC_LIMIT_LOGGER"/>
    </logger>
    <logger name="UNICAST_SMS_MESSAGE" additivity="false" level="INFO">
        <appender-ref ref="ASYNC_UNICAST_SMS_MESSAGE"/>
    </logger>
    <logger name="com.oppo.push.open.unicast.commons.stat" additivity="false" level="INFO">
        <appender-ref ref="ASYNC_STAT"/>
    </logger>

    <!-- 根日誌 -->
    <root>
        <!--<appender-ref ref="stdout"/>-->
        <level value="INFO"/>
        <appender-ref ref="ASYNC_INFO"/>
        <appender-ref ref="ASYNC_WARN"/>
        <appender-ref ref="ASYNC_ERROR"/>
    </root>
    
</configuration>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章