前言
Logback是由log4j创始人设计的又一个开源日志组件, 比log4j的性能好.
1.导入依赖
<!--这个依赖直接包含了 logback-core 以及 slf4j-api的依赖-->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
2.Logback的主要模块
- logback-core: 核心代码模块
- logback-classic: log4j的一个改良版本,同时实现了slf4j的接口,这样你如果之后要切换其他日志组件也是一件很容易的事
- logback-access: 访问模块与Servlet容器集成提供通过Http来访问日志的功能
3.配置获取顺序
logback在启动的时候,会按照下面的顺序加载配置文件:
- 如果java程序启动时指定了
logback.configurationFile
属性,就用该属性指定的配置文件。
如java -Dlogback.configurationFile=/path/to/mylogback.xml Test
,这样执行Test类的时候就会加载/path/to/mylogback.xml
配置. - 在classpath中查找
logback.groovy
文件 - 在classpath中查找
logback-test.xml
文件 - 在classpath中查找
logback.xml
文件 - 如果是 jdk6+,那么会调用ServiceLoader 查找
com.qos.logback.classic.spi.Configurator
接口的第一个实现类,
自动使用ch.qos.logback.classic.BasicConfigurator
,在控制台输出日志.
4.配置文件的节点的结构
contextName节点
设置日志上下文名称,后面输出格式中可以通过定义%contextName
来打印日志上下文名称
property节点
用来设置相关变量,通过key-value的
方式配置,然后在后面的配置文件中通过${key}
来访问
appender:负责写日志的组件, 主要用来设置日志的输出位置, 日志文件的生成策略等
appender
ConsoleAppender
:向控制台输出日志内容的组件,只要定义好encoder节点就可以使用。FileAppender
:向文件输出日志内容的组件,用法也很简单,不过由于没有日志滚动策略,一般很少使用RollingFileAppender
:向文件输出日志内容的组件,同时可以配置日志文件滚动策略,在日志达到一定条件后生成一个新的日志文件. 它有下面几个子节点:
- `<file>`:被写入的文件名,可以是相对目录,也可以是绝对目录,如果上级目录不存在会自动创建,没有默认值。
- `<append>`:如果是 true,日志被追加到文件结尾,如果是 false,清空现存文件,默认是true。
- `<encoder>`:对记录事件进行格式化。
- `<rollingPolicy>`:当发生滚动时,决定`RollingFileAppender`的行为,涉及文件移动和重命名。
- `rollingPolicy`:两个常用热门的策略,`TimeBaseRollingPolicy`, `SizeBasedTriggeringPolicy`
- `TimeBaseRollingPolicy`根据`fileNamePattern`标签来表示什么周期触发一次生成新的日志文件,`maxHistory`表示保存日志的最大单位时间
- `SizeBasedTriggeringPolicy`表示基于文件大小进行滚动
- `<triggeringPolicy>`: 告知`RollingFileAppender`何时激活滚动。
- `<prudent>`:当为true时,不支持`FixedWindowRollingPolicy`。支持`TimeBasedRollingPolicy`,但是有两个限制,1不支持也不允许文件压缩,2不能设置file属性,必须留空。
原文地址:https://www.cnblogs.com/loveer/p/11327115.html
时间: 2024-10-29 20:57:35