Logback介绍
Logback是一个开源日志组件,logback被分为3个组件,logback-core,logback-classic和logback-access.
Logback是具体的日志框架,它要与slf4j结合起来使用。Slf4j:简单日志门面,不是具体的日志解决方案,它只服务于各种各样的日志系统。
slf4j和logback是如何绑定的?
Slf4j和logback是在编译期间绑定的,在绑定的时候已经加载了logback配置文件的加载。Slf4j会在classPath中寻找org.slf4j.impl.StaticLoggerBinder.class(会在具体的日志框架中存在),找到并完成绑定;同时,logback也会在classpath中寻找配置文件,先在logback.configuration,没有则找logback.groovy,若没有则找logback-test.xml,若没有则找logback.xm
logback.xml配置详解
Configuration节点相关属性
属性名称 默认值 介绍
Debug false 要不要打印logback内部日志信息,true则表示要打印
Scan true 配置发生改变时,要不要重新加载
scanPeriod 1 检测配置发生变化的时间间隔,如果没给出时间单位,默认时间单位是毫秒
contextName节点:
设置日志上下文名称。
Property节点
用来设置相关变量,通过key-value的方式配置,然后在后面的配置文件中通过${key}来访问。
Appender节点
日志输出组件,主要负责日志的输出以及格式化日志。
1.ConsoleAppender:向控制台输出日志内容的组件,更准确地说是System.out或者System.err,默认为前者。
2.FileAppender:向文件输出日志内容的组件,目标文件取决于file属性。是否追加输出,取决于append属性。
3.RollingFileAppender:向文件输出日志内容的组件,同时可以配置日志文件滚动策略,在日志达到一定条件后生成一个新的日志文件。RollingFileAppender继承自FileAppender,提供日志目标文件自动切换的功能。例如可以用日期作为日志分割的条件。RollingFileAppender有两个重要属性,RollingPolicy负责怎么切换日志,TriggeringPolicy负责何时切换。为了使RollingFileAppender起作用,这两个设置必须设置,但是如果RollingPolicy的实现类同样实现了TriggeringPolicy接口,则可以设置RollingPolicy这个属性。
Logger以及root节点
用来设置某一个包或者具体的一个类的日志打印级别,以及制定,logger仅有一个name属性和addtivity属性。
Name:用来指定受此logger约束的某一个包或者具体的某一个类。
Addtivity:是否向上级logger传递打印信息,默认是true。
Level:用来设置打印级别,trace,debug,info,warn,error。
Appender-ref:可以设置多个,标识这个appender将会添加到这个logger。
Logback的优点:
- 内核重写,测试充分,初始化内存加载小,这让logback的性能比log4j相比有多倍的提升。
- Logback配置文件修改了,支持自动重新加载配置文件,扫描过程快且安全,它并不需要另外创建一个扫描线程。