• spring boot logback 配置


    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    
        <!--获取配置中的参数信息-->
    
        <property scope="context" name="logHome" value="templogs"/>
    
        <springProperty scope="context" name="logHome"
                        source="log.home"
                        defaultValue="logs/data-process"/>
    
        <property scope="context" name="logname" value="data-process.log"/>
    
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <target>System.out</target>
            <withJansi>true</withJansi> <!-- 使用 jansi windows 输出颜色。 -->
            <encoder>
                <!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
                <pattern>
                    %date{yyyy-MM-dd HH:mm:ss} | %highlight(%-5level) | %msg | %boldYellow(%thread) | %boldGreen(%logger) %n
                </pattern>
                <!-- 无高亮的 pattern -->
                <!--            <pattern>%date{yyyy-MM-dd HH:mm:ss} | %-5level | %msg | %thread | %logger %n</pattern>-->
            </encoder>
        </appender>
    
    
        <appender name="FILE_INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--如果只是想要 Error 级别的日志,那么需要过滤一下,默认是 info 级别的,ThresholdFilter-->
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>INFO</level>
            </filter>
            <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则 如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天的日志改名为今天的日期。即,<File> 的日志都是当天的。 -->
            <File>${logHome}/${logname}-info.log</File>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
                <fileNamePattern>${logHome}/info/${logname}-info-%d{yyyy-MM-dd}.log</fileNamePattern>
                <!--只保留最近30天的日志-->
                <maxHistory>30</maxHistory>
            </rollingPolicy>
            <encoder>
                <charset>UTF-8</charset>
                <pattern>%date{yyyy-MM-dd HH:mm:ss} | %-5level | %msg | %thread | %logger %n</pattern>
            </encoder>
        </appender>
    
        <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <!--如果只是想要 Error 级别的日志,那么需要过滤一下,默认是 info 级别的,ThresholdFilter-->
            <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
                <level>Error</level>
            </filter>
            <!--日志名称,如果没有File 属性,那么只会使用FileNamePattern的文件路径规则 如果同时有<File>和<FileNamePattern>,那么当天日志是<File>,明天会自动把今天的日志改名为今天的日期。即,<File> 的日志都是当天的。 -->
            <File>${logHome}/${logname}-error.log</File>
            <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                <!--文件路径,定义了日志的切分方式——把每一天的日志归档到一个文件中,以防止日志填满整个磁盘空间-->
                <fileNamePattern>${logHome}/error/${logname}-error-%d{yyyy-MM-dd}.log</fileNamePattern>
                <!--只保留最近30天的日志-->
                <maxHistory>30</maxHistory>
            </rollingPolicy>
            <encoder>
                <charset>UTF-8</charset>
                <pattern>%date{yyyy-MM-dd HH:mm:ss} | %-5level | %msg | %thread | %logger %n%n%n</pattern>
            </encoder>
        </appender>
    
        <!-- 异步输出 -->
        <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
            <!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
            <discardingThreshold>0</discardingThreshold>
            <!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
            <queueSize>256</queueSize>
            <!-- 添加附加的appender,最多只能添加一个 -->
            <appender-ref ref="FILE_ERROR"/>
        </appender>
    
    
                
        <root level="INFO">
            <appender-ref ref="CONSOLE"/>
    
            <!--        <appender-ref ref="FILE_ERROR"/>-->
            <appender-ref ref="FILE_INFO"/>
    
            <appender-ref ref="ASYNC"/>
    
            <!--<appender-ref ref="EMAIL"/>-->
        </root>
    
    </configuration>

    pom 依赖

    <dependency>
                <groupId>org.fusesource.jansi</groupId>
                <artifactId>jansi</artifactId>
                <version>1.18</version>
            </dependency>
  • 相关阅读:
    模板方法模式
    外观模式
    《那些年啊,那些事——一个程序员的奋斗史》——128 (终章)
    《那些年啊,那些事——一个程序员的奋斗史》——127
    《那些年啊,那些事——一个程序员的奋斗史》——127
    分布式系统开发里必须要解决的3个技术问题
    《那些年啊,那些事——一个程序员的奋斗史》——128 (终章)
    列举几种系统调用
    linux core文件设置
    《那些年啊,那些事——一个程序员的奋斗史》——127
  • 原文地址:https://www.cnblogs.com/whm-blog/p/11934932.html
Copyright © 2020-2023  润新知