2011-04-28 52 views
2

我一直在想辦法取得Tomcat 5.5 stderr和stdout日誌文件,並在它們變得太大時將其滾動,但我一直無法這樣做。現在,請理解這不適用於Web應用程序日誌記錄。這只是由Tomcat自動創建的stdout和stderr日誌。再次,它們變得太大了,我只需要一種方法,當它們變得太大和/或在一段時間間隔(即每天,每小時)時將它們翻轉過來。當Tomcat 5.5 stderr和stdout文件變得太大/太大時,我該如何翻閱?

我試過使用log4j,但是這似乎是適合應用程序日誌記錄的,而不是tomcat的。有一種方法,我發現它可以使用og4j重定向stdout和stderr(http://sysgears.com/articles/how-to-redirect-stdout-and-stderr-writing-to-a-log4j-appender#comment -749),並且我在這個網站上寫了幾個問題,詳細描述了我的困境,但是我一直無法使它工作。如果我可以讓這種方法起作用,或者如果有另一種方法在log4j之外,我將不勝感激。

此外,是否有可能自己翻轉文件,比如java或perl?作爲測試,我試圖刪除文件,因爲它們正在寫入,但當然,我不能。這些文件被Tomcat鎖定。這一過程將是這樣的:

解鎖從Tomcat進程 檢查文件,如果大小是「太大」 如果是,保存並關閉文件,寫一個新的與新的文件名(即stderr01012011_1.log) 鎖新的文件到Tomcat進程

這聽起來像很多工作,甚至可能不可行,但如果我不能讓log4j方法工作,我該怎麼辦?謝謝。

我希望Apache有一些內置的翻轉stderr和stdout日誌文件。

+0

您是否找到針對您的問題的解決方案? – Dojo 2014-09-19 09:51:35

回答

1

你可以使用logrotate和「copytruncate」選項。看看這裏:How to Rotate Tomcat catalina.out

+0

嘿,謝謝!非常感謝您的回覆!不過,我很抱歉沒有提到這一點,我使用的是Windows,而不是linux/unix。也許在Windows平臺上有相當於logrotate的功能?此外,鏈接指定它爲catalina.out,但也許它可以應用於其他日誌filse像stdout和stderr?再次感謝你。 – user717236 2011-07-21 21:02:27