2012-08-02 64 views

回答

3

如果我已經正確理解了你,那麼你想讀取Tomcat logging.properties文件的屬性。正如您在Tomcat FAQ for Logging中看到的那樣,java.util.logging.config.file用於定義屬性文件的路徑。

然後,您可以通過Java System Properties檢索路徑:

String pathLogProps = System.getProperty("java.util.logging.config.file"); 
Properties properties = new Properties(); 
try { 
    properties.load(new FileInputStream(pathLogProps)); 
    System.out.println(prop.getProperty("database")); 
} catch (IOException ex) { 
    ex.printStackTrace(); 
} 

如果沒有設置,我會按照提示從Apache Tomcat 7 Logging Documentation

巨力是默認啓用的,並且每個支持classloader 配置,除了常規的全局java.util.logging 配置。這意味着可以在以下層配置日誌記錄:

  • 全局。這通常在${catalina.base}/conf/logging.properties文件中完成。該文件由java.util.logging.config.file系統屬性指定 ,系統屬性由 設置啓動腳本。
  • 如果它不可讀或未配置,則默認使用JRE中的${java.home}/lib/logging.properties文件。在網絡 應用程序中。該文件將WEB-INF/classes/logging.properties

每默認路徑logging.properties文件應該在環境變量catalina.base,分別CATALINA_BASE

+0

好辦法,但我不明白的財產「java.util.logging.config.file」 - 我只是收到零... – reini122 2012-08-02 09:17:02

+0

@ reini122我已經添加了另一段。如果系統變量沒有設置,它應該至少在Java或Catalina環境變量上可用。 – 2012-08-02 09:44:58

+0

非常感謝,通過catalina.base閱讀logging.properties! – reini122 2012-08-02 12:27:45

0

文件catalina.out既沒有在任何系統屬性中指定,也沒有在logging.properties中指定(採取look,它不在那裏)。

取而代之的是catalina.out是由bin/catalina.sh(或bin/catalina.bat)內啓動腳本的基於shell的輸出重定向創建的。這意味着該文件僅在您使用這些腳本或模擬此行爲的腳本啓動Tomcat時纔可用。例如,如果在* NIX平臺或Tomcat Windows服務上使用jsvc,則不會創建文件logs/catalina.out(至少在默認情況下不會)。

如果你想查看文件是否存在,你可以打賭它在$CATALINA_BASE/logs/catalina.out。 Tomcat的最近版本的定義catalina.base系統屬性,所以你可以很容易地看看這樣的:

File catalinaOut = new File(System.getProperty("catalina.base"), "logs/catalina.out"); 
if(catalinaOut.exists()) 
{ 
    // Do whatever you want 
} 
+0

感謝您的建議,這正是我現在所做的。我正在通過catalina讀出路徑。基地和「猜測」該文件在那裏。如果不是我不能做任何事情,但通常它在那裏。 – reini122 2012-08-03 06:12:54

相關問題