日志logback.xml

本文介绍了一种使用Logback进行日志记录的配置方法。详细展示了如何设置控制台输出及文件滚动策略,同时还提供了不同级别的日志输出配置示例。

文章目录

<?xml version="1.0" encoding="UTF-8" ?>

<configuration scan="true" scanPeriod="3 seconds">

    <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener"/>

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

    <!--  <appender name="FILE"-->
    <!--            class="ch.qos.logback.core.rolling.RollingFileAppender">-->
    <!--    <File>logFile.log</File>-->
    <!--    <rollingPolicy-->
    <!--            class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">-->
    <!--      <FileNamePattern>-->
    <!--        logFile.%d{yyyy-MM-dd_HH-mm}.log.zip-->
    <!--      </FileNamePattern>-->
    <!--    </rollingPolicy>-->

    <!--    <layout class="ch.qos.logback.classic.PatternLayout">-->
    <!--      <Pattern>-->
    <!--        %d{HH:mm:ss,SSS} [%thread] %-5level %logger{32} - %msg%n-->
    <!--      </Pattern>-->
    <!--    </layout>-->
    <!--  </appender>-->

    <root>
        <!--        <level value="DEBUG"/>-->
        <!--
        Logger 可以被分配级别。级别包括:TRACE、DEBUG、INFO、WARN 和 ERROR,定义于ch.qos.logback.classic.Level类。
        如果 logger没有被分配级别,那么它将从有被分配级别的最近的祖先那里继承级别。root logger 默认级别是 DEBUG。
        -->
        <level value="INFO"/>
        <appender-ref ref="STDOUT"/>
        <!--        <appender-ref ref="FILE"/>-->
    </root>

    <!--<include file="/tmp/logback-demo.xml"/>-->

</configuration>
### 如何在 `logback.xml` 中配置日志等级 #### 日志等级概述 Logback 支持多种日志等级,这些等级按照严重程度从低到高排列:TRACE、DEBUG、INFO、WARN 和 ERROR。每种日志等级表示不同的消息重要性[^1]。 #### 配置日志等级的语法 在 `logback.xml` 文件中,可以通过 `<logger>` 或 `<root>` 节点来设置日志等级。以下是具体的配置方法: - 使用 `<level>` 子节点指定日志等级。 - 可以为特定包或类单独设定日志等级,也可以为整个应用(根记录器)统一设定日志等级。 #### 示例代码 以下是一个完整的 `logback.xml` 配置示例,展示了如何设置不同级别的日志输出: ```xml <configuration> <!-- 定义控制台输出 --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- 设置全局默认日志级别 --> <root level="INFO"> <appender-ref ref="STDOUT"/> </root> <!-- 为某个具体包设置更详细的日志级别 --> <logger name="com.example.myproject" level="DEBUG"/> <!-- 为另一个包禁用日志 (相当于ERROR以上才输出) --> <logger name="org.hibernate.SQL" level="OFF"/> </configuration> ``` 在这个例子中: - 根记录器的日志等级被设为 INFO,这意味着只有 INFO、WARN 和 ERROR 级别的日志会被输出。 - 对于 `com.example.myproject` 包下的类,默认日志等级改为 DEBUG,这使得该包内的 TRACE 和 DEBUG 级别日志也会被打印出来。 - 关闭了 `org.hibernate.SQL` 的所有日志输出,即其日志等级被设为 OFF。 #### 动态调整日志文件名模式 如果希望按时间分割日志文件并保留一定历史长度,则可以结合 `<fileNamePattern>` 和 `<maxHistory>` 进行配置[^4]。例如: ```xml <appender name="ROLLING_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_HOME}/application.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>${LOG_HOME}/archive/application-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern> <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"> <maxFileSize>10MB</maxFileSize> </timeBasedFileNamingAndTriggeringPolicy> <maxHistory>7</maxHistory> </rollingPolicy> <encoder> <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> </encoder> </appender> ``` 上述配置实现了每日生成一个新的日志文件,并最多保存最近七天的历史日志文件。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大怀特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值