• 一秒完成springboot与logback配置


    1. 一秒配置与效果

    1.1 一秒配置

    ​ spring boot中无须添加任何依赖,直接在resources文件夹下面新建logback.xml文件,将以下代码复制过去,配置完成,可以使用了。

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    
        <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
            <!-- encoder 默认配置为PatternLayoutEncoder -->
            <encoder>
                <pattern>%d [%thread] %msg%n</pattern>
            </encoder>
        </appender>
        <appender name="info_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
    
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!-- rollover daily -->
                <FileNamePattern>log/info-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
                <!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
                <maxFileSize>50MB</maxFileSize>
                <maxHistory>180</maxHistory>
            </rollingPolicy>
    
            <layout class="ch.qos.logback.classic.PatternLayout">
                <!-- <pattern>%d [%thread] %msg%n</pattern>-->
                <pattern> %date %-5level %logger{0} - %message%n</pattern>
            </layout>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
        <appender name="warn_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
    
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!-- rollover daily -->
                <fileNamePattern>log/warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                <!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
                <maxFileSize>20MB</maxFileSize>
                <maxHistory>180</maxHistory>
            </rollingPolicy>
    
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern> %date %-5level %logger{0} - %message%n</pattern>
            </layout>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>WARN</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
        <appender name="error_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
    
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!-- rollover daily -->
                <fileNamePattern>log/error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
                <!-- each file should be at most 100MB, keep 60 days worth of history, but at most 20GB -->
                <maxFileSize>20MB</maxFileSize>
                <maxHistory>180</maxHistory>
            </rollingPolicy>
    
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern> %date %-5level %logger{0} - %message%n</pattern>
            </layout>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="info_log"/>
            <appender-ref ref="warn_log"/>
            <appender-ref ref="error_log"/>
        </root>
    
    </configuration>
    

    1.2 Linux服务器日志效果图

    三个级别info、warn、error文件,根据文件日期和文件大小进行滚动。

    2. logback介绍

    2.1 背景

    ​ 人多饭香,logback是log4j创始人重新又搞得一进阶版开源日志系统,号称占用内存小,速度提成10倍以上,测试充分等等,logback配置起来确实简单了不少,但是对于我们大部分程序开发者来说,差异其实也就那样吧,一句话:大家都在用,都说好,用就是了,具体的技术内核,组件组成啥的不详细说了,一般项目用不到,看其他人博客吧。

    2.2 logback配置说明

    ​ 配置说明还是要介绍下,还是很有有必要的。

    2.2.1 配置简单秘密

    ​ 之所以能基本一键配置启动logback,原因在于springboot2.0以上吧,集成了logback,配置依赖已经在starter里面了,只要使用springboot框架,就会自带logbacak 了,只需要在resouces新建一个logback.xml(名字必须是这个)就能直接使用了。

    2.2.2 logback配置解析
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="info_log"/>
            <appender-ref ref="warn_log"/>
            <appender-ref ref="error_log"/>
        </root>
    

    ​ 配置了拆分成了四个层级分开打印,第一个STDOUT就是到控制台去,其余三个分别为info、warn、error,根据日志和大小进行滚动,拿info进行下说明,其他几个配置基本一样。

        <appender name="info_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
             
                <FileNamePattern>log/info-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
     
                <maxFileSize>50MB</maxFileSize>
                <maxHistory>180</maxHistory>
            </rollingPolicy>
    
            <layout class="ch.qos.logback.classic.PatternLayout">
                <pattern> %date %-5level %logger{0} - %message%n</pattern>
            </layout>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    

    重点配置就三个地方

    (1) FileNamePattern

    ​ 定义文件目录及名称命名规则:log/info-%d{yyyy-MM-dd}.%i.log,示例:log/info-2019-06-22.0.log,按天滚动;maxFileSize和maxHistory分别为文件多大滚动和保留多长时间。

    (2)layout

    ​ 定义具体文件排版格式。

    2019-06-22 11:09:17,471 INFO  LogAspect - [9a90efcc-24b1-4b57-a413-04ed874e29b5] -
    

    (3)filter 过滤日志级别

    ​ 假如不想区分info、warn、error的话就不用配置多个appender,配置一个,不配置filter就可以了。


  • 相关阅读:
    C++——多态性
    C++——继承与派生
    C++——字符串处理
    C++——深拷贝
    C++——浅拷贝
    C++——动态内存分配3
    C++——动态内存分配2-创建对象数组
    C++——动态内存分配1
    C++——指针5
    C++——指针4
  • 原文地址:https://www.cnblogs.com/ruanjianlaowang/p/11182467.html
Copyright © 2020-2023  润新知