我在tomcat 6下部署的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.Log4JLogger
WEB-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控制台上的are info日志,但未配置布局模式。
commons-logging-1.1.1.jar和log4j-1.2.14.jar包含在WEB-INF / lib中。知道这里有什么问题吗?
Web上有许多记录在案的实例,警告人们使用commons- logging。如此之多,以至于SLF4J越来越受欢迎。
考虑到您不希望将Tomcat与Log4j一起使用,您应该只在应用程序中直接使用Log4j。特别是如果将来没有机会切换日志记录框架。这将减少应用程序的复杂性,并消除公共记录带来的任何类加载器问题。
这应该是相对容易的搜索并替换为您的文本,因为commons-logging和log4j都为它们的日志记录方法使用了类似的调用结构。