我们正在使用Tomcat 6的Windows安装。默认情况下,我们应用程序的log4j输出转到$ {catalina.base} /logs/stdout_.log文件。此日志文件仅在我们重新启动Tomcat时翻转,文件名始终包含日期。
我希望它的行为类似于DailyRollingFileAppender,它在文件翻转时重命名该文件......这样我就可以打开Notepad ++并查看今天的日志,因为Notepad ++会记住我昨天打开了同一个文件。 :)
我知道我可以在log4j中创建另一个appender,但我最终会得到stdout.log和另一个日志文件,而且我担心记录到这两个文件会有轻微的性能损失。我已经尝试将swallowOutput = true添加到我的context.xml中,但我仍然在stdout.log中记录所有日志。有什么想法吗?
答案 0 :(得分:0)
您是否尝试过Logging in Tomcat中列出的步骤?如果您按照以下步骤操作,最终会在lib目录中找到log4j.properties,您可以根据自己的内容进行自定义。
答案 1 :(得分:0)
最大的性能影响是在准备要记录的对象时(知道,当你执行logger.info(" operating on " + myObject.toString + " bla bla bla" )
时,执行myObject.toString()
的成本最高)。如果你已经拥有它们而不是loggin to file不是问题。 log4j非常平衡和优化,它使用缓冲区来写日志,所以它不会过于频繁地调用文件系统。
只需创建另一个appender,您将与tomcat日志和appilcation日志有所不同。你有几个日志?每天1GB或更多,你害怕性能损失?在测试之前不要假设任何东西。只需设置,并进行某种性能测试。