Spring Cloud Sleuth日志打印logback配置文件模板

  • 配置文件名称 logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <property name="PROJECT" value="xxx-service"/>
    <property name="LOG_PATH" value="/logs/${PROJECT}/"/>
    <property name="maxHistory" value="15"/>
    <property name="maxFileSize" value="100MB"/>

    <springProperty scope="context" name="appName" source="spring.application.name"/>

    <!--格式化输出:%d表示日期,%-5level:日志级别从左显示5个字符宽度(%5p),%thread表示线程名(%t),
    %logger:%L 类的全路径及行号(%c:%L),%msg:日志消息,%n是换行符-->
    <property name="CONSOLE_LOG_PATTERN"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) [${appName},%yellow(%X{X-B3-TraceId}),%green(%X{X-B3-SpanId}),%blue(%X{X-B3-ParentSpanId})] [%yellow(%thread)] %green(%logger:%L)   :%msg%n"/>

    <!-- DEBUG日志 输入到文件,按日期,RollingFileAppender代表滚动记录文件 -->
    <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${
     LOG_PATH}/debug.log</file>
        <!--日志文件滚动策略-->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 按天回滚 daily -->
            <fileNamePattern>${
     LOG_PATH}/debug-%d{
     yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 日志最大的历史 30-->
            <maxHistory>${
     maxHistory}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- maxFileSize:这是活动文件的大小,默认值是10MB,这里设置为50MB -->
                <maxFileSize>${
     maxFileSize}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <append>true</append>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <!--日志输出格式化-->
            <pattern>${
     CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf-8</charset>
        </encoder>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>DEBUG</level>
            <!--onMatch="ACCEPT" 表示匹配该级别及以上 日志会被立即处理,不再经过剩余过滤器。
                onMatch="DENY" 表示不匹配该级别及以上 日志将立即被抛弃不再经过其他过滤器
                onMatch="NEUTRAL" 表示该级别及以上的,由下一个filter处理,如果当前是最后一个,则表示匹配该级别及以上
                onMismatch="ACCEPT" 表示匹配该级别以下
                onMismatch="NEUTRAL" 表示该级别及以下的,由下一个filter处理,如果当前是最后一个,则不匹配该级别以下的
                onMismatch="DENY" 表示不匹配该级别以下的-->
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </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}/info-%d{
     yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 日志最大的历史 30-->
            <maxHistory>${
     maxHistory}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${
     maxFileSize}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <append>true</append>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${
     CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf-8</charset>
        </encoder>

        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>INFO</level>
            <!--            <onMatch>ACCEPT</onMatch>-->
            <!--            <onMismatch>DENY</onMismatch>-->
        </filter>
    </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}/warn-%d{
     yyyy-MM-dd}.%i.log</fileNamePattern>
            <!-- 日志最大的历史 30-->
            <maxHistory>${
     maxHistory}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${
     maxFileSize}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <append>true</append>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${
     CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <level>WARN</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </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}/error-%d{
     yyyy-MM-dd}.%i.log</fileNamePattern>
            <maxHistory>${
     maxHistory}</maxHistory>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>${
     maxFileSize}</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
        <append>true</append>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${
     CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 只打印error日志 -->
            <level>ERROR</level>
            <onMatch>ACCEPT</onMatch>
            <onMismatch>DENY</onMismatch>
        </filter>
    </appender>

    <!-- 控制台打印 -->
    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${
     CONSOLE_LOG_PATTERN}</pattern>
            <charset>utf-8</charset>
        </encoder>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>debug</level>
        </filter>
    </appender>

    <!--日志打印的包的范围,用来设置某一个包或具体的某一个类的日志打印级别 -->
<!--    <logger name="org.springframework" level="INFO"/>-->

    <!-- show parameters for hibernate sql 专为 Hibernate 定制 -->
<!--    <logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE"/>-->
<!--    <logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG"/>-->
<!--    <logger name="org.hibernate.SQL" level="DEBUG"/>-->
<!--    <logger name="org.hibernate.engine.QueryParameters" level="DEBUG"/>-->
<!--    <logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG"/>-->

    <!--myibatis log configure-->
<!--    <logger name="com.apache.ibatis" level="TRACE"/>-->
<!--    <logger name="java.sql.Connection" level="DEBUG"/>-->
<!--    <logger name="java.sql.Statement" level="DEBUG"/>-->
<!--    <logger name="java.sql.PreparedStatement" level="DEBUG"/>-->

    <!--控制台和日志文件输出级别,此处表示把>=INFO级别的日志都输出到下列配置文件,它是根loger,是所有<loger>的上级-->
    <root level="INFO">
        <appender-ref ref="DEBUG"/>
        <appender-ref ref="INFO"/>
        <appender-ref ref="WARN"/>
        <appender-ref ref="ERROR"/>
        <appender-ref ref="STDOUT"/>
    </root>

</configuration>

你可能感兴趣的:(SpringCloud,sleuth,logback)