我是Java日志API的新手,需要一些帮助解决这个问题:在创建应用程序时,我的配置文件存储在项目根文件夹中,所以我用-Djava.util.logging.config.file=logging.properties
switch来运行程序.但后来我导出了可执行文件JAR.如何配置日志记录?当我使用-D开关指定配置文件的路径时,它不起作用.
您不能将JVM参数指定到MANIFEST.MF文件中,因此您必须在命令行或使用快捷方式指定日志记录属性:
java -Djava.util.logging.config.file=logging.properties -jar yourjar.jar
Run Code Online (Sandbox Code Playgroud)
否则,您可以在JAR中打包属性文件(在您的情况下为logging.properties),在启动时读取该文件并将这些设置放入系统属性中.
javadoc说:
此外,LogManager 使用两个可选的系统属性,可以更好地控制读取初始配置:
Run Code Online (Sandbox Code Playgroud)"java.util.logging.config.class" "java.util.logging.config.file"
这两个属性可以通过 Preferences API 设置,或者作为“java”命令的命令行属性定义,或者作为传递给 JNI_CreateJavaVM 的系统属性定义。
如果设置了“java.util.logging.config.class”属性,则该属性值将被视为类名。将加载给定的类,实例化一个对象,并且该对象的构造函数负责读取初始配置。(该对象可以使用其他系统属性来控制其配置。)备用配置类可以使用 readConfiguration(InputStream) 来定义 LogManager 中的属性。
因此,要么使用java.util.logging.config.file
系统属性,并将配置文件存储在 jar 文件中(如果您希望能够自定义日志记录属性以便调试或分析一些奇怪的行为,这可能是一个好主意),要么存储您可以在任意位置(例如,在 jar 文件中)创建 config 文件,并使用java.util.logging.config.class
系统属性加载并实例化一个类,该类将读取 jar 文件中的文件(使用Class.getResourceAsStream()
)。
归档时间: |
|
查看次数: |
15092 次 |
最近记录: |