• logback 日志基础配置


    摘要: 

            Logback 旨在作为流行的 log4j 项目的后继者。它是由 log4j 的创始人 CekiGülcü设计的。它以在设计工业强度测井系统方面获得的十年经验为基础。与所有现有的日志记录系统相比,最终的产品(即 logback)速度更快,占用空间更小,有时间隔很大。同样重要的是,logback 提供了其他日志系统中缺少的独特而实用的功能

     使用 logback-test.xml 或 logback.xml 进行自动配置

    例:

    1. <configuration>
    2. <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    3. <property name="APP_NAME" value="你的应用名" />
    4. <property name="LOG_PATH" value="/home/admin/${APP_NAME}/logs" />
    5. <appender name="APPLICATION"
    6. class="ch.qos.logback.core.rolling.RollingFileAppender">
    7. <file>${LOG_PATH}/application.logfile>
    8. <encoder>
    9. <pattern>
    10. %highlight(%date{yyyy-MM-dd HH:mm:ss.SSS}) %yellow(%-5level) %green(%logger{36}).%gray(%M)-%boldMagenta(%line) - %msg%n
    11. pattern>
    12. <charset>UTF-8charset>
    13. encoder>
    14. <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
    15. <fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}.%i.logfileNamePattern>
    16. <maxHistory>7maxHistory>
    17. <maxFileSize>50MBmaxFileSize>
    18. <totalSizeCap>10GBtotalSizeCap>
    19. rollingPolicy>
    20. appender>
    21. <root level="INFO">
    22. <appender-ref ref="APPLICATION" />
    23. root>
    24. configuration>

     什么是 Appender?

    Logback 将编写日志记录事件的任务委托给称为附加程序的组件。Appender必须实现ch.qos.logback.core.Appender接口。该接口的主要方法总结如下:

    1. package ch.qos.logback.core;
    2. import ch.qos.logback.core.spi.ContextAware;
    3. import ch.qos.logback.core.spi.FilterAttachable;
    4. import ch.qos.logback.core.spi.LifeCycle;
    5. public interface Appender extends LifeCycle, ContextAware, FilterAttachable {
    6. public String getName();
    7. public void setName(String name);
    8. void doAppend(E event);
    9. }

    appender语法结构: 

    1、属性:appender标签中包含两个强制需要的属性:name、class

    ①name:为这个appender起一个唯一标识的名称。与appender-ref中的值相对应。以引用appender。

    ②class:一个Appender类实例的完整类名称。

    2、appender标签中可以包含0个或者1个【layout】标签。0个或者多个【encoder】标签,0个或者多个 【filter】标签。

    3、除了上面3个公共标签之外,还可以包含任意多个与appender的class属性所在的类中的对应的属性标 签。准确的说是setXXX()的XXX标签。他就是利用了Java的反射机制

     Appender 最终负责输出日志记录事件

    但是Appender 可以将事件的实际格式委托给LayoutEncoder对象。每个布局/编码器都与一个且只有一个附加程序(称为拥有附加程序)相关联。一些追加程序具有内置或固定的事件格式。因此,它们不需要布局/编码器。例如, SocketAppender只是将记录事件串行化,然后再通过网络传输它们 

    解读: 

    1.      
    2.        %highlight(%date{yyyy-MM-dd HH:mm:ss.SSS}) %yellow(%-5level) %green(%logger{36}).%gray(%M)-%boldMagenta(%line) - %msg%n
    3.      </pattern>
    4.      UTF-8charset>
    5.  

    pattern:设置日志输出格式+样式

    语法:%样式() 

    例子:

            %highlight(%date{yyyy-MM-dd HH:mm:ss.SSS})   作用:高亮 根据日志级别不同

            %yellow(%-5level)  作用:黄色显示日志级别

    颜色字符编码加粗颜色字符编码
    • %black 黑色

    • %red 红色

    • %green 绿色

    • %yellow 黄色

    • %blue 蓝色

    • %magenta 洋红色

    • %cyan 青色

    • %white 白色

    • %gray 灰色

    • %boldRed

    • %boldGreen

    • %boldYellow

    • %boldBlue

    • %boldMagenta

    • %boldCyan

    • %boldWhite

    • %highlight 高亮色

    设置日志输出级别以及使用对应的 Appender 

    1. <root level="INFO">
    2. <appender-ref ref="APPLICATION" />
    3. root>

    日志输出效果 

    常见问题 

    问题1: 分割日志文件不正确,超过限定大小或过期后不会清理日志文件                                  原因:日志文件存放路径变量无法引用到(环境变量,配置文件) 

      

           

    参考资料

    1. 日志logback格式解析
    2. logback:logback和slf4j中的:appender、logger、encoder、layout
    3. logback appender详解
  • 相关阅读:
    傻白入门芯片设计,典型的2D/2D+/2.5D/3D封装技术(六)
    React Redux
    神经网络小记-混淆矩阵
    甲烷排放通量的计算
    华为云云耀云服务器L实例评测 | MacOS系统-宝塔建站
    计算机毕业设计(附源码)python在线学习系统
    8张图解java
    卷积神经网络的关键技术,卷积神经网络参数优化
    数据结构-堆排序及其复杂度计算
    vue/react/node项目通过eslint检查语法规范
  • 原文地址:https://blog.csdn.net/u011236069/article/details/126141453