摘要:
Logback 旨在作为流行的 log4j 项目的后继者。它是由 log4j 的创始人 CekiGülcü设计的。它以在设计工业强度测井系统方面获得的十年经验为基础。与所有现有的日志记录系统相比,最终的产品(即 logback)速度更快,占用空间更小,有时间隔很大。同样重要的是,logback 提供了其他日志系统中缺少的独特而实用的功能
例:
- <configuration>
- <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
-
-
- <property name="APP_NAME" value="你的应用名" />
-
- <property name="LOG_PATH" value="/home/admin/${APP_NAME}/logs" />
-
-
- <appender name="APPLICATION"
- class="ch.qos.logback.core.rolling.RollingFileAppender">
- <file>${LOG_PATH}/application.logfile>
- <encoder>
- <pattern>
- %highlight(%date{yyyy-MM-dd HH:mm:ss.SSS}) %yellow(%-5level) %green(%logger{36}).%gray(%M)-%boldMagenta(%line) - %msg%n
- pattern>
- <charset>UTF-8charset>
- encoder>
- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
- <fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}.%i.logfileNamePattern>
- <maxHistory>7maxHistory>
- <maxFileSize>50MBmaxFileSize>
- <totalSizeCap>10GBtotalSizeCap>
- rollingPolicy>
- appender>
-
-
- <root level="INFO">
- <appender-ref ref="APPLICATION" />
- root>
-
- configuration>
Logback 将编写日志记录事件的任务委托给称为附加程序的组件。Appender必须实现ch.qos.logback.core.Appender接口。该接口的主要方法总结如下:
package ch.qos.logback.core; import ch.qos.logback.core.spi.ContextAware; import ch.qos.logback.core.spi.FilterAttachable; import ch.qos.logback.core.spi.LifeCycle; public interface Appenderextends LifeCycle, ContextAware, FilterAttachable { public String getName(); public void setName(String name); void doAppend(E event); }
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 可以将事件的实际格式委托给Layout或Encoder对象。每个布局/编码器都与一个且只有一个附加程序(称为拥有附加程序)相关联。一些追加程序具有内置或固定的事件格式。因此,它们不需要布局/编码器。例如,SocketAppender只是将记录事件串行化,然后再通过网络传输它们
解读:
%highlight(%date{yyyy-MM-dd HH:mm:ss.SSS}) %yellow(%-5level) %green(%logger{36}).%gray(%M)-%boldMagenta(%line) - %msg%n </pattern>UTF-8 charset>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 高亮色
- <root level="INFO">
- <appender-ref ref="APPLICATION" />
- root>

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