我一直在开发一个简单的Spring MVC应用程序作为报告服务。在本地,我一直使用mvn tomcat:run通过maven-tomcat-plugin运行应用程序。这完全符合预期。但是,我现在正在尝试将此服务部署到运行Tomcat6的服务器上。我将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 box可能根本看不到这个属性包,但我不确定。我能够通过将捆绑包热复制到WEB-INF/classes中来确认这一假设,并获得适当的结果。在类路径上的正确位置是什么,而不是在一个奇怪的位置?
任何指导都是值得感谢的。
发布于 2011-11-09 01:07:42
Maven在mvn生命周期的compile阶段将资源文件从/src/main/resources复制到/WEB-INF/classes。使用命令mvn war:war不会复制这些资源,因此必须执行mvn compile war:war命令才能使这些资源可用于您的应用程序。
发布于 2011-11-09 00:19:27
我认为,如果您希望自动拾取log4j.properties文件,则它需要位于类路径中。我通常将它放在Tomcat的Lib文件夹或war的lib文件夹中。
https://stackoverflow.com/questions/8053446
复制相似问题