gpt4 book ai didi

startup - 登录-在启动时不要创建空的日志文件

转载 作者:行者123 更新时间:2023-12-04 20:45:20 26 4
gpt4 key购买 nike

我有一个项目,其中包含许多具有自己的日志记录的“工具”类。这些日志文件是在应用程序启动时创建的,但在使用之前一直为空。

是否可以告诉logback在启动时不应该创建空文件?但是仅在使用它们时?

不知何故我找不到有关此主题的信息。谢谢!

最佳答案

Logback的FilAppender中没有对延迟/按需创建日志文件的官方支持。

但是,有些已知的配置替代方法可能会达到相同的结果。有关更多详细信息,请参见Logback feature request 202 "FileAppender should permit lazy file creation"

我个人最喜欢的是使用LazyFileOutputStream和FileAppender的自定义实现的变体。 LazyFileOutputStream can be found in Alessio Pollero's log4j-additions section的有效实现。

LazyFileappender代码非常简单:

public class LazyFileAppender<E> extends FileAppender<E> {

@Override
public void openFile(String file_name) throws IOException {
lock.lock();
try {
File file = new File(file_name);
boolean result = FileUtil.createMissingParentDirectories(file);
if (!result) {
addError("Failed to create parent directories for [" + file.getAbsolutePath() + "]");
}

LazyFileOutputStream lazyFos = new LazyFileOutputStream(file, append);
setOutputStream(lazyFos);
} finally {
lock.unlock();
}
}

}

关于startup - 登录-在启动时不要创建空的日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18910869/

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