java.util.logging不';不应用格式化程序

java.util.logging不';不应用格式化程序,java,java.util.logging,Java,Java.util.logging,我对java.util.logging有问题。我告诉你 我把我的程序放在一个jar文件中,当我运行它时,日志记录就如我所希望的那样工作。在本例中,我在main方法中加载日志记录配置 但是,如果我从另一个jar运行,日志记录不会与配置一起工作,而是与日志记录默认配置一起工作。我以前没有设置日志记录配置。日志应用java.util.Logging.FileHandler.pattern,但不应用java.util.Logging.FileHandler.formatter类。 在这个新的jar中,我

我对java.util.logging有问题。我告诉你

我把我的程序放在一个jar文件中,当我运行它时,日志记录就如我所希望的那样工作。在本例中,我在main方法中加载日志记录配置

但是,如果我从另一个jar运行,日志记录不会与配置一起工作,而是与日志记录默认配置一起工作。我以前没有设置日志记录配置。日志应用java.util.Logging.FileHandler.pattern,但不应用java.util.Logging.FileHandler.formatter类。 在这个新的jar中,我加载了其他jar,并用ClassLoader添加它们

配置文件为:

handlers = java.util.logging.FileHandler

.level = FINER
java.util.logging.FileHandler.level = FINER
java.util.logging.FileHandler.formatter = gx.util.logging.FormatoDesarrollo2
java.util.logging.FileHandler.pattern = log-client-%g.txt

java.util.logging.ConsoleHandler.level = FINER
java.util.logging.ConsoleHandler.formatter = gx.util.logging.FormatoDesarrollo2

gx.games.level=WARNING
那么,问题在哪里呢

多谢各位

在这个新的jar中,我加载了其他jar,并用ClassLoader添加它们

这似乎是可疑的。你能在你的问题中包含代码吗? 将搜索系统类路径:

请注意,在LogManager配置期间加载的所有类首先在系统类路径上搜索,然后再搜索任何用户类路径。它包括LogManager类、任何配置类和任何处理程序类

即使文档说它将搜索不正确的用户类路径。值得注意的是:

由于您正在添加JAR,请确保格式化程序位于系统类路径上。测试这一点的一种方法是添加以下内容:

Class.forName("gx.util.logging.FormatoDesarrollo2", true, ClassLoader.getSystemClassLoader());
如果抛出ClassNotFoundException,那么您的类加载器布局就有问题

在这种情况下,您有两种选择:

  • 将格式化程序放在系统类路径上
  • 使用该选项,因为它将回退到