繁体   English   中英

如何知道 log4j 何时创建了新的日志文件?

[英]How to know when log4j created a new log file?

目前我正在使用 log4j2,在我的 java 应用程序中,我想知道是否可以有一个监听器,以便在生成新文件时(或者因为它超过了重量,或者因为日期),这是能够在我的 BD 中记录每个生成的文件。 我发现了一些关于 JDBCAppender 的东西,但它对我没有帮助,因为它会监听每个日志,我只想在生成新文件时监听。

Log4j 2.14.1 添加了一个可以使用的翻转监听器。 添加它主要是为了简化单元测试,但它允许您检测何时创建新文件。 请注意尽量减少您在被调用的方法中所做的事情。 它提供了一个在翻转前调用的方法和另一个在同步工作完成后调用的方法。 如果您启用了文件压缩,则会异步发生,并且在调用该方法时可能无法完成。 对于此选项,您将实现RolloverListener并通过在 RollingFileManager 上调用 addRolloverListener() 来注册侦听器。

您还可以创建自定义操作。 每次翻转时都会对它们进行评估。

WatchService 允许您监视目录中的文件更改。 看看: https://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html

注册以查看创建目录:

private void registerDirectory(Path dir) throws IOException 
{
    WatchKey key = dir.register(watcher, ENTRY_CREATE);
    keys.put(key, dir);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM