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

时间:2015-06-08 11:05:57

标签: java logging java.util.logging

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

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

然后,%g%u将替换为数字,具体取决于正在运行的进程数。

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

我有办法做到这一点吗?

1 个答案:

答案 0 :(得分:2)

是的,您可以使用反射打破private字段的保护。请参阅此问题:How do I read a private field in Java?

下一个选项是覆盖类并编写自己的处理程序,公开此字段。

最后一个选项是使用不同的日志记录框架,如logback或log4j2。为他们编写自己的appender比JUL更简单。