gpt4 book ai didi

java - Logback 正在截断而不是附加到日志文件

转载 作者:太空宇宙 更新时间:2023-11-04 14:55:27 24 4
gpt4 key购买 nike

我们在下面复制了一个简单的 Logback 配置。我的期望是应用程序将在启动时继续写入(即追加)到日志文件。但是,当我们重新启动应用程序时,现有文件将被丢弃,记录器将创建一个新文件。我的理解是 FileAppender 默认情况下附加到日志文件。即使添加“true”也没有什么区别。我错过了什么吗?

<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<append>true</append>
<File>${logDir}/${filename}.log</File>
<encoder>
<pattern>%d{yyyyMMdd-HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>

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

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

最佳答案

卢哈尔,

不确定您是否仍在寻找答案,因为我发现这个问题很久以前就被问过。但我最近做了一些 logback 工作,偶然发现了这个悬而未决的问题。你想做的事情看起来很简单,所以我想我应该尝试一下,看看发生了什么。

使用以下 logback 配置和随附的代码,我可以很好地附加到日志文件。

<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<File>test.log</File>
<encoder>
<pattern>%d{yyyyMMdd-HH:mm:ss.SSS} [%thread] %-5level %logger{36} -
%msg%n</pattern>
</encoder>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="FILE" />
</appender>
<root level="INFO">
<appender-ref ref="ASYNC" />
</root>
</configuration>

使用上述配置的简单 Java 类:

public class App {

static Logger logger = LoggerFactory.getLogger("SimpleTest");

public static void main(String[] args) {
logger.info("This is an INFO statement");
logger.warn("This is a WARN statement");
logger.error("This is an ERROR statement");

try {
Thread.sleep(2000);
// make sure the AsyncAppender queue is flushed
// before program exits
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

以下是程序运行 3 次后的日志文件。

20141222-22:32:10.391 [主要] 信息 SimpleTest - 这是一条 INFO 语句

20141222-22:32:10.393 [main] 警告 SimpleTest - 这是一个 WARN 语句

20141222-22:32:10.393 [主要] 错误 SimpleTest - 这是一个错误语句

20141222-22:32:18.558 [主要] 信息 SimpleTest - 这是一条 INFO 语句

20141222-22:32:18.560 [main] 警告 SimpleTest - 这是一个 WARN 语句

20141222-22:32:18.560 [主要] 错误 SimpleTest - 这是一个错误语句

20141222-22:32:23.192 [主要] 信息 SimpleTest - 这是一条 INFO 语句

20141222-22:32:23.194 [main] 警告 SimpleTest - 这是一个 WARN 语句

20141222-22:32:23.194 [主要] 错误 SimpleTest - 这是一个错误语句

所以我认为 logback 配置工作正常。希望这可以帮助!

关于java - Logback 正在截断而不是附加到日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23271284/

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