log4j를 사용하며 잘 작동합니다. log4j.xml 파일은 클래스 패스에 있습니다. appender와 category를 사용합니다. 다시 말해서, 내 코드 나 다른 librairy의 코드에는 문제가 없습니다.작동중인 log4j 구성은 Spring 클래스에서 무시됩니다.
하지만 스프링 클래스는 다른 곳에서 로그를 남기고 싶다는 메시지로 stdout을 계속 보냅니다. 짜증나게하기 시작했습니다.
오류 메시지 : org.springframework.jms : some error .... 보다 일반적으로 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이 common-logging을 사용하고 log4j를 사용하지 않는다고 생각합니다. 가능한 원인인가요? 해결 방법은 없습니까?
내 web.xml에 log4jConfigurationListener를 추가하려고합니다. 그는 일하고 있지만 스프링 오류 메시지에 대한 통제권이 없습니다.
<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>
편집 :
이일부 추가 정보를 원하시면 :
- 내가
- log4j.property (기존의 log4j 설정) 톰캣 5.5 사용은 여전히 역사적 이유가 존재한다. 내가 그것을 제거하려고 => 변화 없음.
편집 2 : 나는 다음과 같은 해결 방법을 사용하지만, 나는 그것으로 행복하지 않다 : 그것은 구성 할 수 없습니다입니다
java.util.logging.Logger springLogger = Logger.getLogger("org.springframework.jms");
springLogger.setLevel(Level.OFF);
당신이 사용하는 어떤 용기? WebSphere ??? – pgras
tomcat, 질문을 편집했습니다. –