目前我正在使用log4j2,在我的java应用程序中,我想知道是否有可能有一个侦听器,因为当新文件生成时(无论是因为它超过了权重,还是因为日期),这将能够在我的BD中记录每个生成的文件。我发现了一些关于JDBCAppender的东西,但它对我没有帮助,因为它监听每个日志,我只想在新文件生成时监听。
发布于 2021-04-14 19:31:56
Log4j 2.14.1添加了一个可以使用的翻转监听器。添加它主要是为了简化单元测试,但它将允许您检测何时创建新文件。只是要小心最小化你在被调用的方法中所做的事情。它提供了一个在滚动之前调用的方法,以及在同步工作完成后调用的另一个方法。如果您启用了文件压缩,则该操作将异步发生,并且在调用该方法时可能无法完成。对于此选项,您将实现RolloverListener,并通过在RollingFileManager上调用addRolloverListener()来注册侦听器。
您还可以创建自定义操作。每次翻转时都会对它们进行评估。
发布于 2021-04-14 01:45:32
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);
}https://stackoverflow.com/questions/67079844
复制相似问题