【问题标题】:How can I roll over Tomcat 5.5 stderr and stdout files when they get too large/big?当 Tomcat 5.5 标准错误和标准输出文件变得太大/太大时,如何翻转它们?
【发布时间】:2011-08-14 22:21:39
【问题描述】:

我一直在尝试找出一种方法来获取 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 日志文件。

【问题讨论】:

  • 您找到解决问题的方法了吗?

标签: tomcat stdout stderr rollover


【解决方案1】:

您可以使用带有“copytruncate”选项的 logrotate。看这里:How to Rotate Tomcat catalina.out

【讨论】:

  • 嘿,谢谢!非常感谢您的回复!但是,我很抱歉之前没有提到这一点,我使用的是 Windows,而不是 linux/unix。也许在 Windows 平台上有一个相当于 logrotate 的东西?此外,该链接指定它适用于 catalina.out,但也许它可以应用于其他日志文件,如 stdout 和 stderr?再次感谢您。
猜你喜欢
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
  • 2020-01-29
  • 1970-01-01
  • 2020-04-12
  • 2014-07-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多