gpt4 book ai didi

java - slf4j 配置记录单个文件

转载 作者:行者123 更新时间:2023-12-02 11:38:16 25 4
gpt4 key购买 nike

logback.spring.xml 配置为仅记录单个类

<logger name="classname">
<appender-ref ref="AUDIT_LOG"/>
</logger>

在类中只有 1 次调用来记录。但当我查看创建的日志文件时,发现有 40 000 多行废话。有我想要的 1 行,但其他 40 000 行不应该在那里。

我如何配置 logback 以确保日志文件仅包含 1 个日志调用而没有其他内容?

 <appender name="AUDIT_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/audit/audit.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${LOG_PATH}/audit/audit.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>${FILE_LOG_PATTERN}</Pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>

最佳答案

听起来就像您希望为一个记录器保留AUDIT_LOG,并且为该记录器保留。

此说明...

<logger name="classname">
<appender-ref ref="AUDIT_LOG"/>
</logger>

...将日志事件从classname记录器定向到AUDIT_LOG,但它不会阻止该附加程序处理其他日志事件。

如果您想确保 AUDIT_LOG 附加程序仅处理特定记录器的事件,那么您可以使用 EvaluatorFilter .

这是使用 Logback 的 JaninoEventEvaluator 的示例:

<appender name="AUDIT_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- this filter will accept all log events having the logger name "classname" -->
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<expression>return logger.equals("classname");</expression>
</evaluator>
<OnMismatch>DENY</OnMismatch>
<OnMatch>NEUTRAL</OnMatch>
</filter>

<file>${LOG_PATH}/audit/audit.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${LOG_PATH}/audit/audit.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>10MB</maxFileSize>
</triggeringPolicy>
<encoder>
<charset>utf-8</charset>
<Pattern>${FILE_LOG_PATTERN}</Pattern>
</encoder>
</appender>

注意:求值器表达式是...

arbitrary Java language block returning a boolean value as the evaluation criteria

关于java - slf4j 配置记录单个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48766562/

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