日志技术
程序中的日志可以用来记录程序运行过程中的信息,并可以进行永久存储。
日志技术具备的优势
- 可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。
- 可以随时以开关的形式控制是否记录日志,无需修改源代码。
日志技术体系
日志规范接口【日志的实现框架设计的标准】
- Commons Logging简称JCL
- Simple Logging Facade for Java简称SLF4J
Commons Logging->SLF4J->Log4j->Logback(今天比较常用)
Logback日志框架
Logback是基于slf4j的日志规范实现的框架
Logback主要分为三个技术模块:
- logback-core:logback-core 模块为其他两个模块奠定了基础 ,相当于入口,必须有。【基础模块】
- logback-classic:它是log4j的一个改良版本,核心功能模块 , 同时它完整实现了slf4j API。
- logback-access 模块与 Tomcat 和 Jetty 等 Servlet 容器集成,以提供 HTTP 访问日志功能
Logback的应用
使用java语言开发完成的程序,要给其他人使用,怎么办呢?
- 把程序打包: xxxx.jar (jar文件是java文件压缩包)
要使用第三方开发好的程序,怎么办?
- 在自己的项目工程下,导入xxx.jar包
使用Logback的步骤:
- 导入Logback所需的相关jar文件,并添加到项目资源库中
- 在项目工程下新建lib文件夹,把logback需要的jar文件存放到该文件夹下
- lib目录下的存储的jar文件,添加到当前项目资源库中【选中导入的三个资源右键点击:Add as Library】
- 把logback核心配置文件logback.xml【Logback日志框架的核心】,拷贝到当前项目的src目录下
- 在类中获取到Logger日志对象,使用日志对象中的API方法记录需要的操作信息
java
public static final Logger LOGGER = LoggerFactory.getLogger("哪一个类的日志");
java
import org.slf4j.LoggerFactory;
import org.slf4j.Logger;//注意不要导错包
public class LogbackDemo1 {
//获取到一个Logger对象(使用日志对象记录相关操作)
private static final Logger logger = (Logger) LoggerFactory.getLogger("LockbackDemo1类");
public static void main(String[] args) {
// System.out.println("进入到main方法执行程序...");
logger.info("进入到main方法执行程序...");
// System.out.println("调用show方法执行");
logger.info("调用show方法执行");
show();
}
public static void show(){
// System.out.println("show方法开始执行了");
logger.info("show方法开始执行了");
}
}
控制台运行结果:
2026-01-17 21:43:39.613 [INFO ] LockbackDemo1类 [main] : 进入到main方法执行程序...
2026-01-17 21:43:39.615 [INFO ] LockbackDemo1类 [main] : 调用show方法执行
2026-01-17 21:43:39.615 [INFO ] LockbackDemo1类 [main] : show方法开始执行了
上面的代码不仅会在控制台上输出
还会在电脑的C盘中自动创建一个文件夹,在文件夹中自动创建一个文本文档记录程序的运行结果如图:


Logback使用细节
Logback日志框架的核心:logback.xml
- xml文件
Logback日志输出位置、格式设置:
- 通过logback.xml 中的标签可以设置输出位置和日志信息的详细格式。
- 通常可以设置2个日志输出位置:一个是控制台、一个是系统文件中
输出到控制台的配置标志【记住"CONSOLE"】
java
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
输出到系统文件的配置标志【记住"FILE"】
java
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
如果我们不想让代码输出到控制台或者文件中,我们可以将logback.xml对应的输出代码给注释掉就好了
Logback日志级别(从大到小):
- error //错误
- warn //警告
- info //信息
- debug //调试
- trace //追踪(例:追踪用户行为轨迹)
作用:用于控制系统中哪些日志级别是可以输出的,只输出级别不低于设定级别的日志信息。
ALL 和 OFF分别是打开全部日志信息,及关闭全部日志信息。
java
<!--控制输出日志的级别-->
<root level="ALL">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE" />
</root>