005_logback介绍

1. 什么是logback

1.1. Logback由log4j的创始人设计的又一个开源日志组件。以十多年设计工业级记录系统的经验为基础, 所创建的logback比现有任何记录系统更快、占用资源更少。

1.2. Logback提供独特而实用的特性, 比如: Marker、参数化记录语句、条件化堆栈跟踪和强大的事件过滤功能。以上列出的仅仅是logbook实用特性的一小部分。

1.3. 对于自身的错误报告, logback依赖状态(Status)对象, 状态对象极大地简化了故障查找。

1.4. Logback-core附带了Joran, Joran是个强大的、通用的配置系统, 你可以在自己的项目里使用Joran以获得巨大的作用。

2. logback官网

2.1. 地址: https://logback.qos.ch/

3. 下载logback

3.1. 点击Download

3.2. 点击Maven central

3.3. 点击logback-core

3.4. 点击1.2.3

3.5. 点击下载logback-core-1.2.3.jar和它的源码包logback-core-1.2.3-sources.jar

3.6. 返回到logback目录, 点击logback-classic

3.7. 点击1.2.3

3.8. 点击下载logback-classic-1.2.3.jar和它的源码包logback-classic-1.2.3-sources.jar

 

3.9. 返回到logback目录, 点击logback-access

3.10. 点击1.2.3

3.11. 点击下载logback-access-1.2.3.jar和它的源码包logback-access-1.2.3-sources.jar

4. 入门例子

4.1. 使用logback要添加slf4j-api.jar、logback-core.jar和logback-classic.jar这三个jar包。logback-core是logback的核心模块。logback-classic依赖核心模块。

4.2. 新建一个名为LogbackRuMen的Java项目, 同时添加相关jar包

4.3. 编写HelloWorld.java

package com.zr.rm;

/**我们导入了slf4j的LoggerFactory和Logger类, 根本都没有导入logback, 就好像logback
 * 不存在一样, 实际上底层却使用的是logback日志记录。
 */
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class HelloWorld {
	public static void main(String[] args) {
		Logger logger = LoggerFactory.getLogger(HelloWorld.class);
		
		System.out.println(HelloWorld.class.getName());
		logger.debug("logback入门");
	}
}

4.4. 运行结果

4.5. 本例中, 调用LoggerFactory类的静态方法getLogger取得一个Logger实例, 将该实例赋值给变量logger。这个logger被命名为"com.rjbd.rm.HelloWorld"。

4.6. 调用这个logger的debug方法并传递参数"logback入门"。我们称之为main方法包含了一条消息是"logback入门"、级别是DEBUG的记录语句。

4.7. 本例中, 我们导入了slf4j的LoggerFactory和Logger类, 并没有引用任何logback的类。多数情况下, 只要涉及到记录, 你只需要引用SLF4J的类, 基本可以忽略logback的存在。

4.8. 运行后会在控制台输出下面的一行文字。得益于logback提供了默认配置策略, 当没有发现默认配置文件时, logback会为根(root)logger添加一个ConsoleAppender。

5. Logback内部状态例子

5.1. Logback可以通过内置的状态系统来报告其内部状态。通过StatusManager组件可以访问logback生命期内发生的重要事件。目前, 我们调用StatusPrinter类的print()方法来打印logback的内部状态。

5.2. 在LogbackRuMen的Java项目里编写LogbackStatus.java

package com.rjbd.rm;

import org.slf4j.LoggerFactory;
import ch.qos.logback.classic.LoggerContext;
import ch.qos.logback.core.util.StatusPrinter;

public class LogbackStatus {
	public static void main(String[] args) {
		// 日志上下文
		LoggerContext context = (LoggerContext)LoggerFactory.getILoggerFactory();
		// 打印Logback内部信息
		StatusPrinter.print(context);
	}
}

5.3. 运行结果

5.4. Logback说它没有找到配置文件logback-test.xml、logback.xml和logback.groovy, 于是用默认策略进行配置, 即用一个基本的ConsoleAppender。Appender类可被视为输出目的地的。

5.5. Appender包含许多不同类型的目的地, 包括控制台、文件、Syslog、TCP套接字和其他。用户可以很容易地自定义Appender。

5.6. 当发生错误时, logback将自动在控制台上打印其内部状态。

5.7. 之前的两个示例相当简单, 大型程序里真实记录志情况也不会有太大区别。记录系统的基本模式不会改变, 可能改变的是配置过程。也许你想按照自己的需要来定制或配置logback, 之后的章节会讨论配置logback。

5.8. 在本例中, 我们调用StatusPrinter.prin()方法来打印logback的内部状态。在诊断与logback相关的问题时, logback的内部状态信息会非常有用。

6. 在应程序里启用logback记录的三个必需步骤

6.1. 配置logback环境(添加相关jar包和配置logback.xml)。

6.2. 在每个需要执行记录的类里, 调用org.slf4j.LoggerFactory类的getLogger()方法获取一个Logger实例, 以当前类名或类本身作为参数。

6.3. 调用取得的logger实例的打印方法, 即debug()、info()、warn()和 error(), 把记录输出到配置里的各appender。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值