[英]Log4j configuration for spring MVC app on Tomcat
我一直在开发一个简单的Spring MVC应用程序作为报告服务。 在本地,我一直使用mvn tomcat:run
与maven-tomcat-plugin一起运行应用程序。 这完全符合预期。 但是,我现在正尝试将此服务部署到运行Tomcat 6的服务器。我将war文件加载到webapps目录中,Tomcat注意到了它,进行了部署,然后抱怨:
log4j:WARN No appenders could be found for logger
(org.springframework.web.filter.CharacterEncodingFilter).
log4j:WARN Please initialize the log4j system properly.
而且,毫不奇怪,该服务没有日志记录。
上面的错误消息对我来说还不清楚,我想知道是否有人可以给我一些帮助。
为了后代,我有一个非常简单的log4j.properties文件(位于/src/main/resources
):
log4j.rootLogger=WARN, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern= %d{HH:mm:ss,SSS} [%t] %-5p %x %C{1} : %m%n
log4j.logger.com.rtr=DEBUG
我目前的假设是,tomcat框可能根本看不到该属性包,但是我不确定。 通过将捆绑软件热复制到WEB-INF/classes
并获得适当的结果,我得以证实这一假设。 既在类路径上又不在陌生位置的正确位置是什么?
任何指导表示赞赏。
在mvn生命周期的compile
阶段,Maven将资源文件从/src/main/resources
复制到/WEB-INF/classes
classs。 使用命令mvn war:war
将不会复制这些资源,因此您必须执行mvn compile war:war
才能使资源可用于您的应用程序。
我认为,如果希望自动获取log4j.properties
文件,则该文件必须位于类路径中。 我通常将其放在Tomcat的Lib文件夹或war的lib文件夹中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.