2010-10-20 102 views
0

我有一個在Windows機器上運行的Java應用程序。log4j寫入Windows共享

長話短說,我們有我們放置日誌每機文件的約定:

\\%COMPUTERNAME%\Logs\<AppNameHere> 

所以我配置我的Java應用程序與-Dmachine.name =「%COMPUTERNAME%」來啓動,然後在我的log4j.properties文件我指定

log4j.appender.R.File = \\${machine.name}\Logs\MyVerySpecialApplicationName\log.log 

但我沒有看到該目錄/文件顯示,當我跑我的應用程序(應用程序所做的第一件事就是登錄啓動消息)。

所以我的猜測是,log4j/java無法處理該窗口特定的UNC路徑。

其他人遇到這個問題,找出解決辦法嗎?

回答

2

我看了看Log4j的源代碼。它似乎使用java.io.File來保存對您指定的文件名的引用。

此外,Javadocs java.io.File指出,構造函數File(Log4J使用)支持UNC路徑。

所以,從表面上看,沒有理由不配置你的配置; - 這是重要的注意事項 - Java在中小企業的文件I/O方面存在很長的問題(這幾乎是你想要做的)。

我的建議是:

  1. 通過指定-Dlog4j.debug=true啓動應用程序。系統屬性將使Log4J吐出大量調試信息來幫助您跟蹤問題。
  2. 嘗試使用相同的配置,除了不使用UNC前綴引用文件,而是簡單映射驅動器(我知道您在Windows上運行)。如果事情與映射驅動器一起工作,這意味着使用UNC前綴的東西是問題的根源(儘管我懷疑它)。

讓我們知道事情是如何平息的。祝你好運。 艾薩克

+0

謝謝,我會盡快嘗試! – ecoffey 2010-10-22 16:56:07

0

你需要放兩個間隙爲每一位想在這個配置下

log4j.appender.Log_Arquivo.File=\\\\172.31.88.168\\server10\\soma_10\\logs\\soma_10.log

我希望這可以幫助您。