我使用 log4j,他工作得很好。log4j.xml 文件在我的类路径中,我使用 appender 和 category... 再次,它适用于我的代码或其他库的代码。
但是春季课程继续向标准输出充斥着我想在其他地方登录的消息。开始讨厌了。
违规消息:org.springframework.jms:一些错误....更一般地说,org.springframework 包的所有类都将消息发送到标准输出。
所以我把它放在我的 log4j.xml 中:
<appender name="JMS-ERROR" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="tms.logs.folder/tms.logs.files.prefix-jms-error.log"/>
<param name="Append" value="true"/>
<param name="MaxFileSize" value="1000KB"/>
<param name="MaxBackupIndex" value="2"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="**DVIDEA** %d{dd.MM.yyyy HH:mm:ss} %c %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="FATAL" />
</filter>
</appender>
<category name="org.springframework.jms" additivity="false">
<appender-ref ref="JMS-ERROR"/>
</category>
它与其他图书馆合作。为什么不是春天?
我做了一些研究,似乎 Spring 使用 common-logging,而不是 log4j。这是一个可能的原因吗?任何解决方法?
我尝试将 log4jConfigurationListener 添加到我的 web.xml 中。他正在工作,但我仍然无法控制弹簧错误消息。
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:log4j.xml</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>10000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
编辑 :
更多信息:
- 我使用Tomcat 5.5
- 由于历史原因,log4j.property(旧的 log4j 配置)仍然存在。我尝试删除它=>没有变化。
编辑 2:我使用以下解决方法,但我对此不满意:它不可配置
java.util.logging.Logger springLogger = Logger.getLogger("org.springframework.jms");
springLogger.setLevel(Level.OFF);