logback.xml日志配置详解
Logback 会自动加载配置文件的原因在于它的初始化机制。Logback 使用一种称为“自动配置”的机制来查找和加载配置文件。Logback 在启动时会按照一定的顺序查找配置文件。在resources路径创建一个logback.xml日志文件,不用做其他配置,自动加载。Logback 会在类路径(Classpath)中搜索这些文件。:优先级最高,通常用于测试环境。:Groovy 格式的配置文件。
·
在resources路径创建一个logback.xml日志文件,不用做其他配置,自动加载。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义日志文件的存储地址,使用绝对路径-->
<property name="LOG_HOME" value="d:/logs"/>
<!-- Console 输出设置 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度,%logger{36}:表示生成日志的 logger 名称,超过36会截断,%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
<charset>utf8</charset>
</encoder>
</appender>
日志返回如:2024-10-28 14:50:21.145 [main] INFO com.heima.user.UserApplication - This is an INFO message
<!-- 按照每天生成日志文件 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<fileNamePattern>${LOG_HOME}/leadnews.%d{yyyy-MM-dd}.log</fileNamePattern>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 异步输出 -->
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>512</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="FILE"/>
</appender>
<!-- org.apache.ibatis.cache.decorators.LoggingCache表示这个类相关的,level表示记录debug以上级别的,additivity不会使用父类的属性-->
<logger name="org.apache.ibatis.cache.decorators.LoggingCache" level="DEBUG" additivity="false">
<!-- 表示该日志消息输出到控制台-->
<appender-ref ref="CONSOLE"/>
</logger>
<!-- 表示org.springframework.boot会记录debug以上的记录-->
<logger name="org.springframework.boot" level="debug"/>
<!-- level:设置根 logger 的日志级别为 info,这意味着只有 info 及以上级别的日志消息会被记录。-->
<root level="info">
<!-- appender-ref:引用一个或多个 appender,指定日志消息的输出方式。-->
<!-- <appender-ref ref="FILE"/>:引用一个名为 FILE 的 appender,表示根 logger 的日志消息将输出到文件。-->
<!-- <appender-ref ref="CONSOLE"/>:引用一个名为 CONSOLE 的 appender,表示根 logger 的日志消息将输出到控制台。-->
<!-- 注释掉的 <appender-ref ref="ASYNC"/>:表示当前不使用异步输出的 appender。-->
<!--<appender-ref ref="ASYNC"/>-->
<appender-ref ref="FILE"/>
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
Logback 会自动加载配置文件的原因在于它的初始化机制。Logback 使用一种称为“自动配置”的机制来查找和加载配置文件。以下是详细的解释:
- 默认配置文件位置
Logback 在启动时会按照一定的顺序查找配置文件。默认情况下,Logback 会搜索以下文件:
-
logback-test.xml:优先级最高,通常用于测试环境。 -
logback.groovy:Groovy 格式的配置文件。 -
logback.xml:标准的 XML 格式配置文件。 -
类路径搜索
Logback 会在类路径(Classpath)中搜索这些文件。类路径通常包括:
- 项目的
src/main/resources目录。 - JAR 文件中的资源目录。
- 任何添加到类路径中的目录。
- 初始化过程
当 Logback 初始化时,它会执行以下步骤:
- 创建
LoggerContext:Logback 创建一个LoggerContext对象,这是 Logback 的核心组件,负责管理所有日志记录器和配置。 - 查找配置文件:
LoggerContext会按照上述顺序查找配置文件。 - 解析配置文件:找到配置文件后,
LoggerContext会解析配置文件中的内容。 - 应用配置:根据解析的结果,
LoggerContext会配置日志记录器、appender 和其他组件。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)