2011-04-28 54 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