「Groovy」一文看懂Logback的简单介绍


「Groovy」一文看懂Logback的简单介绍
本文插图
Logback的使用
Logback是log4j的改良版 , 相比log4j , logback是有优势的 , 后面会简单介绍 。
Logback简介 1、logback和log4j是同一个作者 , logback可以看作是log4j的升级版
2、logback分为三个模块 ,logback-core ,logback-classic 和logback-access , 其中 logback-core是核心 , 其他两个模块依赖core , 这个logback-classic是log4j的改善版本 , 并且原生实现了SLF4J门面(具体参考前文:SLF4J实现原理(简单分析)) 。 模块logback-access可以集成于Servlet容器 , 比如Tomact和Jetty 。
3、你可以基于logback-core自己创建其他的模块 。
Logback相比log4j的优势 ,【「Groovy」一文看懂Logback的简单介绍】1、比log4j更快 , 重写了内核 , 在一些关键路径上性能提升10倍 , 内存占用也更少 。
2、经过大量的测试 , 和log4j测试不在一个量级 。
3、logback-classic是SLF4J的实现 , 切换其他日志框架非常方便 ,
4、文档丰富并且不断更新 , 支持Groovy风格的配置文件
6、配置文件自动重新加载 , 如果更新了配置文件 , logback-classic可以自动重新加载 。
7、自动删除日期较老的日志文件 , maxHistory属性 , 你可以控制已经产生日志文件的最大数量 。 如果设置maxHistory为12 , 那那些log文件超过12个月的都会被自动移除 。
8、自动压缩归档的日志文件 , 压缩文件是异步进行 , 不影响应用 。
9、配置文件可以处理不同的环境开发 , 测试 , 生产) , 这样一个配置文件就可以适应多个环境 。
10、SiftingAppender(一个非常多功能的Appender) 它可以用来分割日志文件根据任何一个给定的运行参数 。 如 , SiftingAppender能够区别日志事件跟进用户的Session , 然后每个用户会有一个日志文件 。
Logback的简单应用 ,在上文SLF4J实现原理(简单分析)中有个简单的例子 , 此文不再重复 。
Logback的配置 配置加载的顺序 , 上下文初始化的时候会调用ContextInitializer , 在这个类中的方法findURLOfDefaultConfigurationFile是用来加载默认的配置文件 ,

  • 先从系统的属性中获取键为logback.configurationFile的值 , 如果有 , 就加载指定的配置文件 ,
  • 如果没有设置 , 会在classpath中找文件logback-test.xml
  • 如果logback-test.xml不存在 , 搜索logback.groovy配置文件
  • 如果logback.groovy不存在 , 最后查找logback.xml
  • 如果以上配置文件不存在 , 会用SPI的方式加载classpath下的Configurator接口的实现类 。
  • 最后 , 如果以上都没有成功 , 会默认创建BasicConfigurator实例 , BasicConfigurator默认配置了ConsoleAppender , 也就是只能输出到控制台 。
logback的配置
1、最简单的使用就是不使用任何配置文件 , 用默认的Console输出日志 ,
2、使用logback.xml配置文件
最基本的配置是一个configuration里面有零个或多个appender , 零个或多个logger和最多一个root标签组成 。 (logback是对大小写敏感的)
「Groovy」一文看懂Logback的简单介绍
本文插图
logback的配置文件组成