gpt4 book ai didi

configuration - 不同Logback附加程序的特定于软件包的日志记录级别

转载 作者:行者123 更新时间:2023-12-04 04:10:22 25 4
gpt4 key购买 nike

我有这个简单的Logback配置文件,其中包含两个附加程序和一些基于程序包名称的自定义日志记录级别。

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

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<charset>UTF-8</charset>
<pattern>%date{HH:mm}\t%-5level\t%msg%n</pattern>
</encoder>
</appender>

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>my_logger.log</file>
<encoder>
<charset>UTF-8</charset>
<pattern>%date{dd MMM HH:mm}|%class{0}|%-5level|%msg%n</pattern>
</encoder>
</appender>

<!-- custom logging levels -->
<logger name="myapp.package1" level="INFO" />
<logger name="myapp.package2" level="INFO" />

<root>
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>

</configuration>

使用此配置,将自定义日志记录级别应用于两个追加程序。

如何更改它,以便只有 ConsoleAppender使用这些自定义日志记录级别,而 FileAppender仍保留默认级别?

最佳答案

如果您不想实现自定义过滤器,则可以创建一个具有固定阈值的新Appender(在您的情况下为INFO):

<appender name="INFO_CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
...
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>

然后,为您的自定义日志记录级别添加 INFO_CONSOLEFILE附加程序。 additivity="false"属性可防止记录器记录到从 CONSOLE继承的 root附加程序。
<logger name="myapp.package1" additivity="false">
<appender-ref ref="INFO_CONSOLE" />
<appender-ref ref="FILE" />
</logger>

这应该将 DEBUG及更高版本记录到 FILECONSOLE附加程序中,但 myapp.package1除外,后者仅将 INFO及以上记录到 CONSOLE中。

关于configuration - 不同Logback附加程序的特定于软件包的日志记录级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36086304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com