我在Tomcat6下部署的apring webapp中的日志设置有问题。
webapp使用commons-logging api,在运行时应该使用log4j。日志文件已创建,但仍为空-未出现任何日志条目。
设置如下:
WEB-INF/web.xml:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/log4j.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>WEB-INF/classes/commons-logging.properties:
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLoggerWEB-INF/log4j.xml:
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
...
</appender>
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${catalina.home}/logs/my.log"/>
...
</appender>
<logger name="my.package">
<level value="INFO"/>
</logger>
<root>
<level value="ERROR"/>
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</log4j:configuration>创建了文件logs/my.log,但不显示任何日志。这是tomcat控制台上的信息日志,但没有配置布局模式。
commons-logging-1.1.1.jar和log4j-1.2.14.jar包含在WEB-INF/lib中。你知道这里出了什么问题吗?
发布于 2008-10-20 15:11:24
web上有大量有文档记录的实例,警告人们如何使用commons-logging。正因为如此,SLF4J正变得越来越受欢迎。
考虑到您对在Log4j中使用Tomcat不感兴趣,您应该直接在应用程序中使用Log4j。特别是如果您将来没有机会切换日志记录框架的话。它将降低应用程序的复杂性,并消除commons-logging带来的任何类加载器问题。
在您的文本中,这应该是一个相对容易的搜索和替换方法,因为commons-logging和log4j对它们的日志方法都使用了类似的调用结构。
https://stackoverflow.com/questions/217929
复制相似问题