zoukankan      html  css  js  c++  java
  • (7)一秒完成springboot与logback配置-copy

    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就可以了。

  • 相关阅读:
    HDU 5791 Two (DP)
    POJ 1088 滑雪 (DPor记忆化搜索)
    LightOJ 1011
    POJ 1787 Charlie's Change (多重背包 带结果组成)
    HDU 5550 Game Rooms (ccpc2015 K)(dp)
    HDU 5542 The Battle of Chibi (ccpc 南阳 C)(DP 树状数组 离散化)
    HDU 5543 Pick The Sticks (01背包)
    HDU 5546 Ancient Go (ccpc2015南阳G)
    NB-IoT的DRX、eDRX、PSM三个模式 (转载,描述的简单易懂)
    MQTT 嵌入式端通讯协议解析(转)
  • 原文地址:https://www.cnblogs.com/hanease/p/14520542.html
Copyright © 2011-2022 走看看