我使用log4j,他工作得很好。 log4j.xml文件在我的类路径中,我使用appender和category ...再次,它对我的代码或其他库的代码工作得很好。春季班忽略工作log4j配置
但春天班继续洪水标准输出消息我想登录其他地方。它开始讨厌。
违规消息:org.springframework.jms:有些错误....更多一般来说,org.springframework包的所有类都会向stdout发送消息。
所以我把这个在我的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>
这是一个与其他LIBRAIRIE工作。为什么不弹簧?
我做了一些研究,并且发现Spring使用通用日志记录,而不是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);
您正在使用什么容器? WebSphere? – pgras 2010-01-27 12:37:00
tomcat,我编辑了这个问题 – 2010-01-27 12:52:50