首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道log4j何时创建了新的日志文件?

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

Stack Overflow用户
提问于 2021-04-14 01:41:21
回答 2查看 50关注 0票数 0

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

EN

回答 2

Stack Overflow用户

发布于 2021-04-14 19:31:56

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

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

票数 0
EN

Stack Overflow用户

发布于 2021-04-14 01:45:32

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

注册以查看创建的目录:

代码语言:javascript
复制
private void registerDirectory(Path dir) throws IOException 
{
    WatchKey key = dir.register(watcher, ENTRY_CREATE);
    keys.put(key, dir);
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67079844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档