繁体   English   中英

Tomcat上Spring MVC应用的Log4j配置

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM