2012-04-29 80 views
8

我是Java日志API的新手,需要一些帮助解决这个问题: 在创建应用程序时,我的配置文件存储在项目的根文件夹中,所以我用-Djava.util.logging.config.file=logging.properties开关来运行程序。 但后来我导出可执行JAR。 如何现在配置日志记录?当我使用-D开关指定配置文件的路径时,它不起作用。如何在运行JAR时配置日志记录?

回答

6

所以你必须在命令行或快捷方式指定日志属性不能指定JVM参数到MANIFEST.MF文件

java -Djava.util.logging.config.file=logging.properties -jar yourjar.jar 

否则,你可以打包属性文件(在你的情况下是logging.properties),请阅读 启动并将这些设置放入系统属性中。

3

The javadoc说:

此外,日志管理使用两个可选的系统性质 允许在读取所述初始配置更多的控制:

"java.util.logging.config.class" 
"java.util.logging.config.file" 

这两个属性可以经由偏好设置API或将命令 的行属性定义为“java”命令,或者将系统属性 定义传递给JNI_CreateJavaVM。

如果设置了“java.util.logging.config.class”属性,则 属性值将被视为类名称。给定的类将加载 ,对象将被实例化,并且该对象的构造函数 负责读取初始配置。 (该对象 可能使用其他系统属性来控制其配置。) 备用配置类可以使用readConfiguration(InputStream) 来定义LogManager中的属性。

所以,要么使用java.util.logging.config.file系统属性,并存储配置文件出的jar文件(如果你希望能够以自定义日志记录属性调试或分析其中一些可能是一个好主意奇怪的行为),或者将配置文件存储到任意位置(例如在jar文件中),并使用java.util.logging.config.class系统属性加载和实例化将读取jar文件中的文件的类(使用Class.getResourceAsStream())。

相关问题