我有一個谷歌Web工具包(GWT) - 應用程序,我在三種不同模式:相對於應用程序路徑的Tomcat log4j日誌記錄?
- 部署在Tomcat
- 託管模式
- JUnit測試
我怎樣才能配置log4j.properties,使每個模式都能正確記錄?
如果我使用${catalina.base}
我不能在託管模式和JUnit測試使用它,如果我只是使用相對logs/myapplication.log
,它不會與Tomcat的工作,因爲那時我得到:
java.io.FileNotFoundException: log/myapplication.log (Keine Berechtigung)
我不會如果日誌目錄可以相對於應用程序路徑指定,那麼不要在webapps/myapplication/logs中記錄日誌,但如果日誌文件只在/ var/log/tomcat7/...或其他某些中日誌文件夾。
此刻我log4j.properties包含文件記錄了以下項:
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=${catalina.base}/logs/myapplication.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%c %C %d{ABSOLUTE} %-5p %C{1}: %m%n
log4j.appender.file.threshold=DEBUG
log4j.appender.file.Append=false
我不確定它是否適用於所有情況,但可以嘗試登錄到stdout。 Tomcat會將其捕獲到日誌目錄中的日誌文件中。你沒有說服務器在託管模式下,但那也可以在那裏工作。我相信JUnit也會捕獲stdout。 – GreyBeardedGeek
是的,我已經登錄到標準輸出,但我不喜歡所有這些例外,當我開始我的程序。 –
什麼是'所有這些例外'? – GreyBeardedGeek