使用JDK Logging查找实际打开的日志文件



我看到Java日志记录-我的日志文件在哪里?,但在我的情况下,我想在我的Java应用程序中找出FileHandler实际打开的日志文件,即,如果我启动多个进程并将模式设置为

java.util.logging.FileHandler.pattern=MyApp.%g.%u.log

然后%g%u将根据运行的进程数替换为数字。

我可以遍历所有日志处理程序并找到基于文件的处理程序。但据我所知,FileHandler中没有方法来获取当前打开的文件。

我可以这样做吗?

是的,您可以使用反射来打破字段的private保护。看看这个问题:如何在Java中读取私有字段?

下一个选项是重写类并编写自己的处理程序来公开该字段。

最后一个选项是使用不同的日志框架,如logback或log4j2。为它们编写自己的appender要比为js编写appender简单得多。

最新更新