每當我啓動我的grails應用程序時,使用我的tomcat6服務器上的生產環境,我在/var/log/tomcat6/catalina.out中看到以下錯誤:grails如何配置log4j登錄到tomcat日誌
log4j:ERROR setFile(null,true) call failed.
java.io.FileNotFoundException: stacktrace.log (Permission denied)
...
...
我收集這是因爲log4j試圖創建一個日誌文件,並沒有所需的權限。
理想情況下,我希望我的應用程序的日誌文件轉到現有的tomcat日誌(/var/log/tomcat6/catalina.out)或轉到/ var/log/tomcat6目錄中的單獨文件。
如何以最少量的配置更改log4j日誌的位置?即我不想用自己的輸出模式定義完整的appender,我只是想更改日誌文件的位置。在這種情況下
log4j = {
appenders {
file name:'file', file: '/var/log/tomcat6/mylog.log'
}
root {
info 'stdout', 'file'
}
}
所有日誌事件與info
級以上將被推到兩個文件/var/log/tomcat6/mylog.log
和stdout(即tomcat會增加:
可避免硬編碼路徑到Tomcat的日誌目錄這樣的:'文件名:「文件」,文件:(System.getProper ty('catalina.base')?:'target')+'/ logs/mylog.log' - 這可以在run-app或Tomcat中使用,因爲如果沒有設置catalina.base屬性,它會寫入日誌目標/日誌 –
也不記錄在Tomcat重定向控制檯記錄器到catalina.out? –
我已經將appender文件屬性設置爲'/var/log/tomcat6/mylog.log',並創建了日誌文件並記錄到日誌文件。不過,我仍然在'catalina.out'日誌中看到上述錯誤。有沒有人知道一個快速的方法,我可以告訴哪個文件log4j試圖訪問時,它會引發此錯誤? – srkiNZ84