在客户站点上部署Web应用程序(在测试环境中)期间,我们遇到了记录应用程序的问题。我将很快尝试描述当前的情况:
客户决定他想在tomcat上使用Log4J并配置它以便它(通常)工作 - 当然它不适用于上述应用程序。
看起来我们还需要更改日志记录实现 - 我想问你一些关于如何在Web应用程序中实现日志记录的最佳实践。 事情应该是可能的:
答案 0 :(得分:6)
客户需要能够在不修改* .war文件中的任何内容的情况下更改日志级别。
您可以将日志框架配置文件(log4j.xml
或logback.xml
)放在WAR文件之外。此文件发生更改时,logback也支持自动重新配置。
应该可以进行某种滚动文件记录
log4j和Logback都支持根据大小和日期回滚文件,例如, RollingFileAppender
由于另一个客户可能想要使用标准的JUL日志记录 - 我当然更喜欢不对首选库进行硬编码(在这种情况下为Log4J)。
apache-commons-logging为fundamentally broken,请改用slf4j。然后,您只需在CLASSPTH上添加不同的实现。此外,SLF4J API非常好。
答案 1 :(得分:2)
你应该看看SLF4J。它本质上是一个包装器,允许最终用户放入他们想要的任何日志库(大多数情况下)。
虽然我没有尝试,但他们甚至有一个migrator tool,可以帮助您更改代码以使用它。