Logback
logback由log4j创始人设计的另一个开源日志框架,性能高于log4j
logback-core :其他两个模块的基础模块
logback-classic :他是log4j的一个改良版本,同时他完整实现了slf4j的api
logback-access:访问模块与servlet容器集成提供通过http来访问日志的功能
pom.xml
1 |
|
因为logback 是按slf4j来实现的,所以
工厂获取
初始化
1 | private static Object KEY = new Object(); |
获取
1 | StaticLoggerBinder.getSingleton().getLoggerFactory(); |
logger获取
初始化
1 | public LoggerContext() { |
获取
1 | public final Logger getLogger(final String name) { |
执行
1 | public void error(String msg) { |
appender调用
1 | synchronized线程同步,,子类重写此方法需要保证线程同步 |
配置引入
默认加载 logback.groovy,logback-test.xml,logback.xml配置文件
关系
Logger:日志记录器,跟他关联到应用context,主要用于存放日志对象,定义类型,级别
appender:用于指定日志输出的目的地,可以时控制台,文件,数据库等,还有一个AsyncAppender它可以添加appender
Layout:负责把事件转换c成字符串,格式化输出,在logback中的layout被封装在encoder中
logback.xml配置文件
1 |
|
配置源码
1 | public void autoConfig() throws JoranException { |
解析
1 |
|
处理
1 | public void play(List<SaxEvent> aSaxEventList) { |
appenderaction处理
1 |
|
body处理
1 |
|
默认配置
1 | public void configure(LoggerContext lc) { |
日志拆分
1 |
|
filter过滤日志级别
1 |
|
异步日志
1 |
|
自定义logger
1 |
|
Logback-access
此模块与servlet容器(tomcat ,jetty)集成,提供http来访问日志的功能,可以使用logback-access来替换tomcat的访问日志
1,将logback-access.jar 与 logback-core.jar放入 tomcat home目录下的lib目录下
2 修改$tomcat_home/conf/server.xml的host元素中添加:
1 | <Host name="localhost" appBase="webapps" |
3.logback默认会在 $TOMCAT_HOME/conf/下查找logback-access.xml文件
logback-access.xml内容
1 |
|
- 本文作者: 忘忧症
- 本文链接: https://NepenthesZGW.github.io/2020/01/10/framework/log/logback/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!