使用 JDK 日志记录查找实际打开的日志文件
Find actual opened logfile with JDK Logging
我看到了 Java Logging - where is my log file?,但在我的例子中,我想在我的 Java 应用程序中找出 FileHandler
实际打开的日志文件,即如果我启动多个进程并且有模式设置为
java.util.logging.FileHandler.pattern=MyApp.%g.%u.log
然后 %g
和 %u
将根据进程数 运行.
替换为数字
我可以遍历所有日志处理程序并找到基于文件的处理程序。但据我所知,FileHandler
中没有获取当前打开文件的方法。
我有办法做到这一点吗?
是的,你可以使用反射打破private
字段的保护。看到这个问题:How do I read a private field in Java?
下一个选项是覆盖 class 并编写您自己的处理程序来公开此字段。
最后一个选项是使用不同的日志记录框架,如 logback 或 log4j2。为他们编写自己的 appender 会比为 JUL 更简单。
我看到了 Java Logging - where is my log file?,但在我的例子中,我想在我的 Java 应用程序中找出 FileHandler
实际打开的日志文件,即如果我启动多个进程并且有模式设置为
java.util.logging.FileHandler.pattern=MyApp.%g.%u.log
然后 %g
和 %u
将根据进程数 运行.
我可以遍历所有日志处理程序并找到基于文件的处理程序。但据我所知,FileHandler
中没有获取当前打开文件的方法。
我有办法做到这一点吗?
是的,你可以使用反射打破private
字段的保护。看到这个问题:How do I read a private field in Java?
下一个选项是覆盖 class 并编写您自己的处理程序来公开此字段。
最后一个选项是使用不同的日志记录框架,如 logback 或 log4j2。为他们编写自己的 appender 会比为 JUL 更简单。