我在Tomcat中有一個使用log4j進行日誌記錄的Web應用程序。
如果我在Web應用程序運行時刪除日誌文件,則不會重新創建文件?
如何配置log4j重新創建文件刪除而不必重新啓動Tomcat?Log4j在刪除時不會重新創建文件
4
A
回答
3
如果你的tomcat是在linux服務器上,並且你用一個沒有執行日誌文件夾權限的特定用戶啓動它,你的log4j不會重新創建你的日誌,因爲它可能只有讀/寫權限。
如果是這樣的情況下嘗試:
chmod 755
上包含文件夾
編輯:
第二種可能性是,一些操作系統完成了「刪除」操作,只有當該文件是不再使用。如果是這樣的話,那麼你的tomcat仍然可以在那裏「查看」日誌。
EDIT2:
在這種情況下,讓一個cron作業,每幾分鐘檢查,如果該文件是存在的。如果不只是重新創建它。我會在幾分鐘內提供解決方案。
所以這應該是你的crontab在bash會碰到這樣的:
if [ ! -f /tomcat_dir/log4j.log ]
then
`touch /tomcat_dir/log4j.log`;
fi
1
在log4j.properties,配置RollingFileAppender進行
#------------------------------------------------------------------------------
#
# Rolling File Appender
#
#------------------------------------------------------------------------------
log4j.appender.rfile = org.apache.log4j.RollingFileAppender
log4j.appender.rfile.File = logs/server.log
log4j.appender.rfile.Append = false
log4j.appender.rfile.MaxFileSize=10240KB
log4j.appender.rfile.MaxBackupIndex=10
log4j.appender.rfile.layout = org.apache.log4j.PatternLayout
log4j.appender.rfile.layout.ConversionPattern = %d %-5p [%C] (%t) %m (%F:%L)%n
配置每日cron作業(SH腳本/ etc/crond.daily /)清理日期超過$ DAYS舊
find $LOG_ROOT/log/server.log* -mtime +$DAYS -exec rm {} \;
相關問題
- 1. Log4j刪除後不重新創建日誌文件
- 2. Log4j FileAppender重新創建刪除的文件
- 3. Logback不會在Linux上重新創建已刪除的日誌文件
- 4. 只在創建新文件時刪除.dat文件
- 5. 由resque worker創建的臨時文件不會被刪除
- 6. Log4j運行jar文件時不會創建日誌
- 7. 如何在意外刪除後重新創建.gitignore文件
- 8. 使用屬性文件配置Log4j不會創建文件
- 9. 重新創建已刪除的用戶在ASP.Net會員
- 10. Log4j Fileappender不會創建它應該在的文件
- 11. log4j不會在系統中創建日誌文件
- 12. ASP.NET重新啓動時創建一個文件夾,重命名或刪除
- 13. Log4j:在運行時創建/修改appender,重新創建日誌文件並且不附加
- 14. 當文件被刪除時ant重建
- 15. NPM INSTALL不會從.ts文件重新創建.js文件
- 16. 刪除創建的臨時文件
- 17. 根據創建時間刪除文件
- 18. 刪除並重新創建的文件必須單獨修訂?
- 19. awk無法重新創建它刪除的文件?
- 20. 刪除遷移文件並重新創建Initial.cs
- 21. logstash - 輸入文件被刪除並重新創建
- 22. 刪除文件vs目錄+重新創建表現
- 23. 將svn刪除--keep-local還會保持文件在更新時不被刪除?
- 24. 更新或刪除現有文件並創建新文件
- 25. Log4j創建動態文件
- 26. Log4j FileAppender創建空文件
- 27. log4j按需創建文件
- 28. 在運行時刪除日誌文件,並且slf4j + logback不會再創建它
- 29. 由MSM創建的文件夾在卸載時不會被刪除
- 30. 創建和刪除文件夾時MVC會話丟失
我編輯了我的答案 – 2012-03-30 06:19:18
對其中一個重複這個問題的評論指出,如果您可以替換文件的_contents_而不刪除它,日誌記錄將繼續正常運行(在Linux上,無論如何)。例如,當您測試某些內容並希望清除日誌中的「噪音」以關注由測試引起的日誌記錄時,這可能很有用。如果文件是'cat/dev/null>/path/to/log/file'(或'echo「cat/dev/null>/path/to/log/file」| sudo -s')不能被用戶寫入)。 – Lambart 2017-05-25 19:52:48