Dim*_*ele 5 startup logback logfile
我有一个项目,其中包含许多具有自己日志记录的"工具"类.这些日志文件是在应用程序启动时创建的,但在使用之前保持为空.
是否有可能告诉logback不应该在启动时创建空文件?但只有当它们被使用时?
不知何故,我找不到有关此主题的信息.谢谢!
Logback 的FileAppender.
然而,有一些已知的配置解决方法可以实现相同的结果。有关更多详细信息,请参阅Logback 功能请求 202“FileAppender 应允许延迟文件创建”。
我个人最喜欢的是使用 LazyFileOutputStream 和 FileAppender 的自定义实现的变体。LazyFileOutputStream的工作实现可以在 Alessio Pollero 的 log4j-additions 部分中找到。
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
887 次 |
| 最近记录: |