- Logback日志框架
- Logback框架分为以下几个模块
- 想要使用Logback日志框架,至少在项目中整合如下三个模块:
- Logback快速入门
- 目的:使用Logback日志框架,记录系统的运行信息
- 实现步骤:
- Test.class
- 控制台日志信息
- 文件日志信息
- Logback核心配置文件
- Logback日志的输出位置、格式设置
- 输出到控制台的配置标志
- 输出到系统文件的配置标志
- 日志级别
- logback.xml文件
官方网站:Logback官网
Logback框架分为以下几个模块- logback-core:该模块为其他两个模块提供基础代码(必须有)
- logback-classic:完整实现了slf4jAPI模块(必须有)
- logback-access:模块与Tomcat和Jetty等Servlet容器结合以提供HTTP访问日志功能(可选模块)
jar包下载链接
slf4j-api
locback-core
logback-classic
-
导入Logback框架到项目中去。在项目中新建文件夹lib,导入Logback的jar包到该文件夹下
-
将存放jar文件的lib文件夹添加到项目的依赖库中去
-
将Logback核心配置文件logback.xml直接拷贝到src目录下
-
创建Logback框架提供的Logger日志对象,后续使用其方法记录系统的日志信息
public static final Logger LOGGER = LoggerFactory.getLogger("Test.class");Test.class
package com.iheima.logback; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class Test { //创建Logback日志对象,代表了日志技术 public static final Logger LOGGER = LoggerFactory.getLogger("Test.class"); public static void main(String[] args) { try { LOGGER.debug("main方法开始执行"); LOGGER.info("我开始记录第二行日志,我要开始做除法~~~"); int a = 10; int b = 0; LOGGER.trace("a=" + a); LOGGER.trace("b=" + b); System.out.println(a / b); } catch (Exception e) { e.printStackTrace(); LOGGER.error("功能出现异常" + e); } System.out.println("**********程序结束***********"); } }控制台日志信息
2022-08-08 21:34:31.718 [DEBUG] Test.class [main] : main方法开始执行 2022-08-08 21:34:31.719 [INFO ] Test.class [main] : 我开始记录第二行日志,我要开始做除法~~~ 2022-08-08 21:34:31.719 [TRACE] Test.class [main] : a=10 2022-08-08 21:34:31.719 [TRACE] Test.class [main] : b=0 2022-08-08 21:34:31.720 [ERROR] Test.class [main] : 功能出现异常java.lang.ArithmeticException: / by zero **********程序结束*********** java.lang.ArithmeticException: / by zero at com.iheima.logback.Test.main(Test.java:21) Process finished with exit code 0文件日志信息 Logback核心配置文件
对logback日志框架的控制,都是通过核心配置文件logback.xml实现的。
Logback日志的输出位置、格式设置- 通过logback.xml中的标签可以设置输出位置
- 通常可以设置2个日志输出位置:控制台、系统文件
输出到系统文件的配置标志
日志级别
- ALL和OFF分别是打开关闭全部日志信息
- 除此之外日志级别还有TRACE
- 作用:当在logback.xml文件中设置了某种日志级别后、系统将输出当前级别,以及高于当前级别的日志。
具体在标签的level属性中设置指定系统的日志级别。
logback.xml文件
System.out %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5level] %c [%thread] : %msg%n %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n utf-8 D:/logback/path/itheima-data.log >D:/logback/path/itheima-data2-%d{yyyy-MM-dd}.log%i.gz 1MB