2012-04-29 84 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())。

相關問題