Logback 教程

Logback 笔记

Logback 简介


Logback 是由 log4j 创始人 Ceki Gülcü 设计的又一个开源日志组件。log4j 的原型是早前由 Ceki Gülcü 贡献给 Apache 基金会。Logback 分成三个模块,logback-core,logback-classic 和 logback-access。logback-core 是其它两个模块的基础模块。logback-classic 是 log4j 的一个改良版本,实现了 slf4j api,所以你可以在 logback 和 slf4j 其他的实现之间切换。logback-access 访问模块与 Servlet 容器集成提供通过 Http 来访问日志的功能。

Logback 三大重要概念

在 Logback 里,最重要的三个类分别是 Logger,Appender,Layout。

Logger:日志记录器,把它关联到应用对应的 context 上后,主要用于存放日志对象,定义日志类型,级别等。

Appender:指定日志输出的目的地,目的地可以是控制台、文件、远程套接字服务器、MySQL、PostreSQL、Oracle 和其他数据库、JMS 和远程 UNIX Syslog 守护进程等。

Layout:负责把事件转换成字符串,格式化日志信息的输出。

Logger 类是 logback-classic 模块的一部分,而 Appender 和 Layout 接口来自 logback-core。

Logback 与 Log4J

实际上,这两个日志框架都出自同一个开发者之手,Logback 相对于 Log4J 有更多的优点。

  • 同样的代码路径,Logback 执行更快;
  • 更充分的测试;
  • 原生实现了 SLF4J API(Log4J 还需要有一个中间转换层);
  • 内容更丰富的文档;
  • 支持 XML 或者 Groovy 方式配置;
  • 配置文件自动热加载;
  • 从 IO 错误中优雅恢复;
  • 自动删除日志归档;
  • 自动压缩日志成为归档文件;
  • 支持 Prudent 模式,使多个 JVM 进程能记录同一个日志文件;
  • 支持配置文件中加入条件判断来适应不同的环境;
  • 更强大的过滤器;
  • 支持 SiftingAppender(可筛选 Appender);
  • 异常栈信息带有包信息;