2

我一直在尝试找出一种方法来获取 Tomcat 5.5 标准错误和标准输出日志文件,并在它们变得太大时将它们翻转,但我一直无法这样做。现在,请理解这不适用于 Web 应用程序日志记录。这只是 Tomcat 自动创建的 stdout 和 stderr 日志。同样,它们变得太大,我只需要一种方法在它们变得太大和/或在某个时间间隔(即每天,每小时)时将它们翻转过来。

我尝试使用 log4j,但这似乎适用于应用程序日志记录,而不适用于 tomcat。我发现有一种方法可以使用 og4j 重定向标准输出和标准错误(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 日志文件。

4

1 回答 1

1

您可以将 logrotate 与“copytruncate”选项一起使用。看看这里:如何旋转 Tomcat catalina.out

于 2011-07-19T06:18:09.203 回答