探路 Logback 日志文件

微信用户1406327061

共 1561字,需浏览 4分钟

 ·

2020-11-16 11:32

1.Logback 强在哪

1)非常自然的实现了SLF4J,不需要像Log4j和JUL那样加一个适配层。

c75c90df6dafd24aaa3561cf5fd9269b.webp

       2)Spring Boot的默认日志框架使用的是Logback。一旦某款工具库成为了默认选项,那就说明这款工具已经超过了其他竞品。

2.怎么使用Logback 

第一步,在pom.xml文件中添加Logback 的依赖:


ch.qos.logback
logback-classic
1.2.3

maven会自动导入另外两个依赖;

dca57385678f6e32ad8085676ed795d0.webp

logback-core 是Logback 的核心,logback-classic 是SLF4J的实现。

第二步:简单的示例

f1d397abab35f3f6aaf789bf83870348.webp

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;


Logger 和LoggerFactory 都来自SLF4J,所以如果项目是从 Log4j + SLF4J 切换到 Logback 的话,此时的代码是零改动的。

运行 Test 类,可以在控制台看到以下信息:

12:04:20.149 [main] DEBUG com.itwanger.Test - logback

在没有配置文件的情况下,一切都是默认的,Logback 的日志信息会输出到控制台。可以通过 StatusPrinter 来打印 Logback 的内部信息:

LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory();
StatusPrinter.print(lc);

在 main 方法中添加以上代码后,再次运行 Test 类,可以在控制台看到以下信息:

601d616a635d857ba76143d0ff4b0fde.webp

也就是说,Logback 会在 classpath 路径下先寻找 logback-test.xml 文件,没有找到的话,寻找 logback.groovy 文件,还没有的话,寻找 logback.xml 文件,都找不到的话,就输出到控制台。

一般来说,我们会在本地环境中配置 logback-test.xml,在生产环境下配置 logback.xml

第三步,在 resource 目录下增加 logback-test.xml 文件,内容如下

1)配置 appender

appender 可以配置多个类,这里列出三个类

559007223092377306b4f08e58be7d3f.webp

截取的部分Logback配置,其他日志级别的配置基本上与此类似,可自行调整。

aabc2ad2b1ca01bfd07b188a0d9df950.webp

Logback 的配置文件非常灵活,最基本的结构为  元素,包含 0 或多个  元素,其后跟 0 或多个  元素,其后再跟最多只能存在一个的  元素。


 encoder 负责把日志信息转换成字节数组,并且把字节数组写到输出流

2)配置 root,它只支持一个属性——level,值可以为:TRACE、DEBUG、INFO、WARN、ERROR、ALL、OFF。

appender-ref 用来指定具体的 appender。

3)查看内部状态信息

可以在代码中通过 StatusPrinter 来打印 Logback 内部状态信息,也可以通过在 configuration 上开启 debug 来打印内部状态信息。

4)自动重载配置

之前提到 Logback 很强的一个功能就是支持自动重载配置,那想要启用这个功能也非常简单,只需要在 configuration 元素上添加 scan=true 即可。

<configuration scan="true">
    ...
configuration>

默认情况下,扫描的时间间隔是一分钟一次。如果想要调整时间间隔,可以通过 scanPeriod 属性进行调整,单位可以是毫秒(milliseconds)、秒(seconds)、分钟(minutes)或者小时(hours)。

下面这个示例指定的时间间隔是 30 秒:

"true" scanPeriod="30 seconds"
   ...

注意:如果指定了时间间隔,没有指定时间单位,默认的时间单位为毫秒。

当设置 scan=true 后,Logback 会起一个 ReconfigureOnChangeTask 的任务来监视配置文件的变化。

配置完成之后把logback.xml文件放在资源文件目录下,启动项目即可。logback会根据logback这个名称自己去匹配加载。

%d{HH:mm:ss.SSS} %relative [%thread] %-5level %logger{36} - %msg%n


d13caead7fef94a86a98496deb450c2f.webp

运行后,可以在 配置的目录下看到两个文件:debug.log 和 errror.log。

浏览 16
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报