一:Slf4j logback log4j 关系
Slf4j:slf4j 相当于一个接口 他可以兼容很多种logging实现 (The Simple Logging Facade for Java (SLF4J) serves as a simple facade or abstraction for various logging frameworks)
logback 和log4j 就是上文说的 logging frameworks 是目前比较流行的框架
附上slf4j和其他framework的组合图
目前比较流行的搭配是slf4j+log4j or slf4j+logback
Logback vs log4j
Logback is intended as a successor to the popular log4j project (logback是在log4j上的一个更优的框架)
二: 工程使用logback配置
1.在jar管理配置文件 添加依赖(习惯使用maven or gradle来管理jar包依赖)
'ch.qos.logback:logback-classic:1.1.1',
'org.slf4j:slf4j-api:1.7.6'
2.在配置文件目录下添加logback.xml文件
程序启动后 logback会在class path按顺序找logback-test.xml, logback.groovy, logback.xml 如果三者都没有 logback会用内在机制BasicConfigurator 打印日志到控制台
三: logback.xml-configuration (logger and root)
<configuration scan="true" scanPeriod="30 seconds">
******
</configuration>
scan: 是否开启监视log配置文件变动 如果设为true 当配置文件有改动 会立即生效 (具体的通过ReconfigureOnChangeFilter实现)
scanPeriod: 间隔多长时间扫描一次 单位支持milliseconds, seconds, minutes or hours 默认为间隔为一分钟 默认单位为milliseconds (建议合理设置这个数字 考虑性能)
configuration元素是配置文件的管理者 他下面主要有这几个元素
logger
name:设置某一个类 或者宝下的日志 日志打印级别 和日志输出地
level: 日志输出最低级别 低于该指定日志级别的日志将不再输出
additivity:日志是否会向上传递 就是自己打印出来的日志 是否允许上级也打印出来
appender-ref: 可以配*(代表0或者+) 指定日志的输出地
root
level: root唯一支持的attribute
appender-ref: 同logger
四: logback.xml-configuration (appender)
appender 日志输出组件 主要的元素及其关系 附上图
appender
name:自定义名称 和appender-ref搭配使用 指定某个类或指定包按照哪个appender指定格式的信息输出到指定地
class: 指定appender按照指定类来实例化写组件
layout: 有一个按照pattern格式 把日志信息写到输出流
今天只是介绍了一个大概 后续会详细的跟进
网友评论