08.java日志之logabck各环境配置

381 阅读1分钟

java日志系列全解

# 00.java⽇志之发展史

# 01.java日志之原生的日志框架jul

# 02.java日志之log4j入门及xml配置详解

# 03.java日志之log4j的基础组件和各种Appender

# 04.java日志之jcl门面

# 05.java日志之slf4j门面

# 06.java日志之logback源码和xml解析

# 07.java日志之logback内部状态数据Status

# 08.java日志之logabck各环境配置

# 09.java日志之logback的appender标签及其子标签全解析

logback-dev.xml

<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE configuration>

<configuration scan="true" packagingData="false" debug="false">

    <property name="APP_NAME" value="app-demo"/>
    <property name="LOG_HOME" value="home/log/app-demo"/>

    <contextName>${APP_NAME}</contextName>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c{0} - %m%n</pattern>
        </encoder>
    </appender>

    <appender name="CONSOLE_DEBUG" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c - %m%n%caller%n</pattern>
        </encoder>
    </appender>

    <!-- File Rolling Appender -->
    <appender name="FILE_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${APP_NAME}.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c{0} - %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 压缩模式.zip | .gz , WW 按周进行rollover-->
            <FileNamePattern>
                ${LOG_HOME}/${APP_NAME}_%d{yyyy-MM-dd}.log.gz
            </FileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_HOME}/${APP_NAME}_error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${APP_NAME}_error_%d{yyyy-MM-dd}.log.gz</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c{0} - %m%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 压缩模式.zip | .gz , WW 按周进行rollover-->
            <FileNamePattern>
                ${LOG_HOME}/${APP_NAME}_error_%d{yyyy-MM-dd}.log.gz
            </FileNamePattern>
        </rollingPolicy>
    </appender>

    <Logger name="com.pkg.*.dao.mapper" level="DEBUG"/>

    <root>
        <level value="INFO"/>
        <appender-ref ref="CONSOLE"/>
    </root>

</configuration>

logback-prod.xml

<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE configuration>

<configuration scan="true" packagingData="false" debug="false">

    <property name="APP_NAME" value="app-demo"/>
    <property name="LOG_HOME" value="/home/log/app-demo"/>

    <contextName>${APP_NAME}</contextName>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c{0} - %m%n</pattern>
        </encoder>
    </appender>

    <appender name="CONSOLE_DEBUG" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c - %m%n%caller%n</pattern>
        </encoder>
    </appender>

    <!-- File Rolling Appender -->
    <appender name="FILE_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${APP_NAME}.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c{0} - %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 压缩模式.zip | .gz , WW 按周进行rollover-->
            <FileNamePattern>
                ${LOG_HOME}/${APP_NAME}_%d{yyyy-MM-dd}.log.gz
            </FileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_HOME}/${APP_NAME}_error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${APP_NAME}_error_%d{yyyy-MM-dd}.log.gz</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c{0} - %m%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 压缩模式.zip | .gz , WW 按周进行rollover-->
            <FileNamePattern>
                ${LOG_HOME}/${APP_NAME}_error_%d{yyyy-MM-dd}.log.gz
            </FileNamePattern>
        </rollingPolicy>
    </appender>

    <Logger name="com.pkg.*.dao.mapper" level="DEBUG"/>
    <logger name="org.springframework.amqp.rabbit.listener.BlockingQueueConsumer" level="WARN"/>
    <logger name="org.springframework.core.task.SimpleAsyncTaskExecutor" level="WARN"/>
    <root>
        <level value="INFO"/>
        <appender-ref ref="error"/>
        <appender-ref ref="FILE_ROLLING"/>
    </root>

</configuration>

logback-test.xml

<?xml version="1.0" encoding="GBK" ?>
<!DOCTYPE configuration>

<configuration scan="true" packagingData="false" debug="false">

    <property name="APP_NAME" value="app-demo"/>
    <property name="LOG_HOME" value="/home/log/app-demo"/>

    <contextName>${APP_NAME}</contextName>

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c{0} - %m%n</pattern>
        </encoder>
    </appender>

    <appender name="CONSOLE_DEBUG" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c - %m%n%caller%n</pattern>
        </encoder>
    </appender>

    <!-- File Rolling Appender -->
    <appender name="FILE_ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/${APP_NAME}.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c{0} - %m%n</pattern>
        </encoder>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 压缩模式.zip | .gz , WW 按周进行rollover-->
            <FileNamePattern>
                ${LOG_HOME}/${APP_NAME}_%d{yyyy-MM-dd}.log.gz
            </FileNamePattern>
        </rollingPolicy>
    </appender>

    <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <File>${LOG_HOME}/${APP_NAME}_error.log</File>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/${APP_NAME}_error_%d{yyyy-MM-dd}.log.gz</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%-5p %d{yyyy-MM-dd HH:mm:ss:SSS} - [%thread] %c{0} - %m%n</pattern>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 压缩模式.zip | .gz , WW 按周进行rollover-->
            <FileNamePattern>
                ${LOG_HOME}/${APP_NAME}_error_%d{yyyy-MM-dd}.log.gz
            </FileNamePattern>
        </rollingPolicy>
    </appender>

    <Logger name="com.pkg.*.dao.mapper" level="DEBUG"/>
    <logger name="org.springframework.amqp.rabbit.listener.BlockingQueueConsumer" level="WARN"/>
    <logger name="org.springframework.core.task.SimpleAsyncTaskExecutor" level="WARN"/>

    <root>
        <level value="INFO"/>
        <appender-ref ref="error"/>
        <appender-ref ref="FILE_ROLLING"/>
    </root>

</configuration>