美文网首页
logback完整配置

logback完整配置

作者: 万福来 | 来源:发表于2020-05-19 11:06 被阅读0次

logback-spring.xml

springboot项目
maven中配置的变量
@app.name@
@log.path@

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false">
    <property name="APP_NAME" value="@app.name@" />
    <property name="LOG_HOME" value="@log.path@" />
    <contextName>${APP_NAME}</contextName>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <appender name="TOTAL-FILE"  class="ch.qos.logback.core.rolling.RollingFileAppender">
        <!-- 指定日志文件的名称 -->
        <file>${LOG_HOME}/${APP_NAME}.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--日志文件输出的文件名-->
            <FileNamePattern>${LOG_HOME}/${APP_NAME}-%d{yyyy-MM-dd}.log</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50}  - %msg%n</pattern>
        </encoder>
    </appender>
    <appender name ="ASYNC-TOTAL-FILE" class= "ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold >0</discardingThreshold>
        <queueSize>2048</queueSize>
        <neverBlock>true</neverBlock>
        <appender-ref ref = "TOTAL-FILE"/>
    </appender>

    <appender name="ERROR-FILE"  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}-%d{yyyy-MM-dd}.error.log</FileNamePattern>
            <!--日志文件保留天数-->
            <MaxHistory>30</MaxHistory>
        </rollingPolicy>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
        </encoder>
        <!--只打印error级别的日志-->
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>
    <appender name ="ASYNC-ERROR-FILE" class= "ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold >0</discardingThreshold>
        <queueSize>2048</queueSize>
        <neverBlock>true</neverBlock>
        <appender-ref ref = "ERROR-FILE"/>
    </appender>

    <!-- 测试环境+开发环境. 多个使用逗号隔开. -->
    <springProfile name="dev,test">
        <logger name="com.xx.yy" level="debug" additivity="false" >
            <appender-ref ref="STDOUT"/>
            <!-- 输出到日志文件 -->
            <appender-ref ref="ASYNC-TOTAL-FILE" />
            <appender-ref ref="ASYNC-ERROR-FILE" />
        </logger>
        <root level="info">
            <!-- 输出到控制台 -->
            <appender-ref ref="STDOUT"/>
            <!-- 输出到日志文件 -->
            <appender-ref ref="ASYNC-TOTAL-FILE" />
            <appender-ref ref="ASYNC-ERROR-FILE" />
        </root>
    </springProfile>

    <!-- 生产环境. -->
    <springProfile name="prod">
        <logger name="com.xx.yy" level="info" additivity="false" >
            <!-- 输出到日志文件 -->
            <appender-ref ref="ASYNC-TOTAL-FILE" />
            <appender-ref ref="ASYNC-ERROR-FILE" />
        </logger>
        <root level="info">
            <!-- 输出到日志文件 -->
            <appender-ref ref="ASYNC-TOTAL-FILE" />
            <appender-ref ref="ASYNC-ERROR-FILE" />
        </root>
    </springProfile>
</configuration>

相关文章

网友评论

      本文标题:logback完整配置

      本文链接:https://www.haomeiwen.com/subject/uoivohtx.html