gpt4 book ai didi

java - Logback 丢失日志消息,即使 discardingThreshold=0

转载 作者:行者123 更新时间:2023-11-30 08:23:30 30 4
gpt4 key购买 nike

阅读 this question关于 logback 丢失日志语句,我添加了一个 discardingThreshold=0 语句。遗憾的是,我的日志文件中仍然缺少一些行。如果我只使用 RollingFileAppender,跳过 AsyncAppender,它工作正常。

AsyncAppender 错过了 Period 51 之后的所有语句,但日志文件应该包含直到 96 的条目。

我做错了什么?

logback.xml

<configuration>
<!-- Einstellungen fuer die Konsolenausgabe -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%-5p %c{2} - %m%n</pattern>
</encoder>
</appender>

<!-- Einstellungen fuer die Logdatei -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log/simulation.log</file>
<append>true</append>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>simulation.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1024KB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{ISO8601} %-5p %c - %m%n</pattern>
</encoder>
</appender>

<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<discardingThreshold>0</discardingThreshold>
<appender-ref ref="FILE" />
</appender>

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

日志文件:

INFO  d.t.w.o.z.s.SimulationHospital - Simulation initialize
TRACE d.t.w.o.z.s.SimulationHospital - Period 0 starts
TRACE d.t.w.o.z.s.SimulationHospital - Arrival occurs
TRACE d.t.w.o.z.s.SimulationHospital - Period 1 starts
TRACE d.t.w.o.z.s.SimulationHospital - Arrival occurs
TRACE d.t.w.o.z.s.SimulationHospital - Finish treatment
TRACE d.t.w.o.z.s.SimulationHospital - Period 2 starts
TRACE d.t.w.o.z.s.SimulationHospital - Arrival occurs
TRACE d.t.w.o.z.s.SimulationHospital - Finish treatment
...
...
...
TRACE d.t.w.o.z.s.SimulationHospital - Arrival occurs
TRACE d.t.w.o.z.s.SimulationHospital - Finish treatment
TRACE d.t.w.o.z.s.SimulationHospital - Period 96 starts
TRACE d.t.w.o.z.s.SimulationHospital - Finish treatment
INFO d.t.w.o.z.s.SimulationHospital - Simulation is running
REPORT on Tally stat. collector ==> Average wait time per day
num. obs. min max average standard dev.
143 0.000 0.000 0.000 0.000
90.0% confidence interval for mean (student): ( 0.000, 0.000 )

INFO d.t.w.o.z.s.SimulationHospital - Simulation finished

最佳答案

您需要像在流中刷新一样正确关闭上下文:

@Component
public class LogsFlusher {

private static final Logger LOG = LoggerFactory.getLogger(LogsFlusher.class);

@PreDestroy
public void flushLogs() {
LOG.info("Shutdown logger context.");
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
loggerContext.stop();
}
}

关于java - Logback 丢失日志消息,即使 discardingThreshold=0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23628130/

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