日志框架 — Logback

日志框架 — LogbackLogback 是一个用于 Java 应用程序的日志框架 它由 log4j 框架的创始人 CekiG lc 开发

大家好,欢迎来到IT知识分享网。

1. 什么是logback

Logback是一个用于Java应用程序的日志框架,它由log4j框架的创始人Ceki Gülcü开发。logback是log4j框架的继承者和改进版,并提供了更好的性能、可扩展性和灵活性。与Log4j相比,Logback提供了更快的速度和更低的内存占用,这使得它成为大型企业级应用程序的理想选择。

Logback包括三个模块:logback-core、logback-classic和logback-access。

  1. logback-core提供了通用的日志记录功能;
  2. logback-classic提供了与SLF4J API和log4j API兼容的日志记录功能;
  3. logback-access提供了HTTP访问日志的功能。

同时,Logback还支持异步日志记录、多线程环境下的高性能、动态配置等特性,使得它成为Java应用程序中广泛使用的日志框架之一。

2. logback的日志级别

Logger有五个日志级别,分别是TRACEDEBUGINFOWARNERROR
这五个级别优先级为,TRACE<DEBUG<INFO<WARN<ERROR

在打印日志的时候,只会打印当前日志级别高于或者等于当前日志级别的日志信息。例如当前日志级别为INFO,那么只会记录日志级别为INFO、WARN、ERROR的日志信息。

查看springboot项目的日志级别,使用下面代码进行测试。

@Service public class LogTest { 
    private static final Logger logger = LoggerFactory.getLogger(LogTest.class); public void test() { 
    logger.trace("===trace==="); logger.debug("===debug==="); logger.info("===info==="); logger.warn("===warn==="); logger.error("===error==="); } } 

测试代码

@SpringBootTest class LogbackApplicationTests { 
    @Resource private LogTest logTest; @Test void testqwe() { 
    logTest.test(); } } 

3. 日志级别的层级

一般日志的最高层级就是root。例如现在创建一个logger是com.example.logback下的logger,结构如下。
在这里插入图片描述
这里的日志级别如果没有指定,也会继承父类。

4. logback配置文件

logback配置文件一般在springboot项目的src/main/resources目录下创建名为logback-spring.xml的文件

4.1 logger标签

logger就是日志记录器,用来控制要输出哪些日志记录语句,对日志信息进行级别限制。

<configuration> <logger level="ERROR" name="com.example.testlog.LogTest" additivity="false"> <appender-ref ref="STDOUT"></appender-ref> </logger> </configuration> 

4.2 root标签

<configuration> <root level="debug"> <appender-ref ref="STDOUT"></appender-ref> </root> </configuration> 

4.3 appender标签

appender就是附加器,日志记录器会将输出的任务交给附加器完成,不同的附加器会将日志输出到不同的地方,例如控制台、文件、网络等

几个常见的附加器:

  1. 控制台附加器:ch.qos.logback.core.ConsoleAppender
  2. 文件附加器:ch.qos.logback.core.FileAppender
  3. 滚动文件附加器:ch.qos.logback.core.rolling.RollingFileAppender

属性有name、class,class用来指定附加器,name来表示当前附件器的名字。其他需要指定附件器的标签,可以通过appender-ref标签中的ref来指定。可以包含encoder元素、fileter元素等

使用示例:

<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n</pattern> </encoder> </appender> </configuration> 

4.4 filter标签

可以有三个元素,level元素、onMatch元素、onMismatch元素。<level>:设置过滤级别
<onMatch>:用于配置符合过滤条件的操作
<onMismatch>:用于配置不符合过滤条件的操作。
使用示例:


<configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <filter> <level>info</level> <onMatch>DENY</onMatch> <onMismatch>ACCEPT</onMismatch> </filter> <encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n</pattern> </encoder> </appender> </configuration> 

4.5 encoder标签

encoder最主要的就是pattern标签,用于控制输出日志的格式

%d: 表示日期
%-5level:日志级别
%thread:表示线程名
%logger:输出日志的类名
logger{length}:对输出日志的类名缩写展示
%msg:日志输出内容
%n:换行符
-:左对齐






使用示例:

<encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n</pattern> </encoder> 

4.6 property标签

property标签用来定义变量, 有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值

使用示例:

<property name="HOME" value="../log"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <file>${HOME}/log.log</file> </appender> 

5. 整体演示

5.1 配置文件

<?xml version="1.0" encoding="UTF-8"?> <configuration xmlns="http://ch.qos.logback/xml/ns/logback" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ch.qos.logback/xml/ns/logback https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n</pattern> </encoder> </appender> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>E:/workspace/logback/logfile.txt</file> <append>true</append> <encoder> <pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="STDOUT"/> </root> <logger level="trace" name="com.example.testlog.LogTest" additivity="false"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </logger> </configuration> 

5.2 运行结果

文件夹输出的信息

在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121036.html

(0)
上一篇 2025-10-25 21:45
下一篇 2025-10-25 22:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信