3

我们使用的是 Windows 安装的 Tomcat 6。默认情况下,我们的应用程序的 log4j 输出到 ${catalina.base}/logs/stdout_.log 文件。此日志文件仅在我们重新启动 Tomcat 时才会滚动,并且文件名始终包含日期。

我希望它表现得像 DailyRollingFileAppender,它在滚动时重命名文件……这样我就可以打开 Notepad++ 并查看今天的日志,因为 Notepad++ 会记得我昨天打开了同一个文件。:)

我知道我可以在 log4j 中创建另一个附加程序,但我最终会得到 stdout.log 和另一个日志文件,而且我担心记录到这两个文件会对性能造成轻微影响。我已经尝试将swallowOutput=true 添加到我的context.xml,但我仍然可以在stdout.log 中记录所有内容。有任何想法吗?

4

2 回答 2

0

您是否尝试过Logging in Tomcat中列出的步骤?如果您按照这些步骤操作,您最终会在 lib 目录中获得 log4j.properties,您可以根据自己的喜好对其进行自定义。

于 2010-01-06T19:09:23.287 回答
0

最大的性能损失是在准备要记录的对象时(您知道,当您这样做时,这样logger.info(" operating on " + myObject.toString + " bla bla bla" )myObject.toString()的成本最高)。如果您已经拥有它们,那么登录到文件不是问题。而且 log4j 的平衡和优化非常好,它使用缓冲区来写入日志,因此不会对文件系统进行过于频繁的调用。

只需创建另一个附加程序,您将与 tomcat 日志和您的应用程序日志有所不同。你有多少日志?一天1GB以上你怕性能损失?在测试之前不要假设任何事情。只需设置,并进行某种性能测试。

于 2010-11-30T13:43:22.360 回答