logback–进阶–01–介绍
代码位置
https://gitee.com/DanShenGuiZu/learnDemo/tree/master/logback-learn
1、介绍
Logback 目的是作为流行的 log4j 日志框架的继承者。它是由 log4j 的创始人 Ceki Gülcü 设计的。
logback 比所有现有的 logging 系统更快,并且占用的内存空间更小。而且,logback 提供了其他日志记录系统所缺少的独特且相当有用的功能。
1.1、架构
- Logback的架构可以分为三个模块
- logback-core
- logback-classic
- logback-access
- logback-core 模块是其他2个模块的基础。
- logback-classic 扩展了 logback-core
- logback-access 模块与 Servlet 容器集成在一起,以提供 HTTP 访问日志功能。
- 我们一般使用 logback-core 和 logback-classic。
1.2、依赖
使用 Logback-classic 时,除了引入 logback-classic.jar 外,还需要 slf4j-api.jar 和 logback-core.jar。不过如果我们使用Maven构建工具,只需要引入 logback-classic 依赖,会自动引入其他2个依赖。
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>org.codehaus.janino</groupId>
<artifactId>janino</artifactId>
<version>3.0.7</version>
</dependency>
1.3、根据logback的默认配置策略,当未找到默认日志配置文件时,logback 会添加一个 ConsoleAppender控制台输出器关联到 根logger 记录器中。
public class Demo5 {
public static void main(String[] args) {
// 定义一个 Logger 记录器对象,名字为Main类的全限定名
Logger logger = LoggerFactory.getLogger(Demo5.class);
// 在 info 级别上输出日志 Hello Logback!
logger.info("Hello Logback!");
}
}
1.4、Logback 可以通过使用内置状态系统打印有关其内部状态的信息
- 通过 StatusManager组件 来访问在 logback 生命周期内发生的重要事件。
- 通过调用 StatusPrinter.print() 来指示 logback 打印其内部状态信息。
public static void main(String[] args) {
// 定义一个 Logger 记录器对象,名字为Main类的全限定名
Logger logger = LoggerFactory.getLogger(Demo5.class);
// 在 info 级别上输出日志 Hello Logback!
logger.info("Hello Logback!");
//可以通过使用内置状态系统打印有关其内部状态的信息
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
StatusPrinter.print(loggerContext);
}
没有找到 logback-test.xml,logback.groovy,logback.xml配置文件,所以使用默认策略,配置了 ConsoleAppender。
2、在项目中添加日志系统的步骤
- 通过 Maven添加依赖
- 配置日志配置文件logback.xml
- 在需要打印日志的类中,通过 LoggerFactory 获取 Logger 对象,然后调用它的debug(),info(),warn() 和 error()等方法。
3、logback的日志级别
级别按以下顺序排序
TRACE < DEBUG < INFO < WARN < ERROR