2012-04-02 4 views
0

Log4J를 사용하여 매우 특정한 특성의 출력을 다른 모든 로그에 지정된 로그와 다른 로그로 보내고 싶습니다. 지금, 나는 비트처럼 보이는 log4j.properties 가지고있다 - 충분히 쉬운 -Log4J를 사용하여 로깅 출력을 다른 로거로 독점적으로 전달하는 방법

log4j.rootLogger=INFO,catchall 
log4j.logger.SPECIAL_LOGGER=INFO,specials 
... catchall, specials appenders defined 

나는 specials 펜더의 로거 SPECIAL_LOGGER에서만 출력을 원하는을하지만 난에 SPECIAL_LOGGER의 출력을 원하지 않는 내 catchall 첨부. 나는 이것이 내가 로그 수준에서 필요한 것을 할 수 없다는 것을 의미한다고 생각한다.

아이디어가 있으십니까?

답변

2

적절한 가중치를 설정하기 만하면됩니다. 이 행을 log4j 구성에 추가하십시오.

log4j.additivity.SPECIAL_LOGGER=false 
+1

해당 기능에 대해 알지 못했습니다. 중대한 대답은 내가 필요한 것을 정확하게합니다. 감사! – Brabster

0

나는이 기능을 내 응용 프로그램에서 사용하기 위해 사용했습니다. 당신은 당신의 log4j.xml에서 별도의 펜더를 작성해야, 이런 일이 도움이 될 수

<appender name="myAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
    <param name="file" value="logs/date.log" />  
    <param name="append" value="true" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{HH:mm:ss z} %-5p [%c{1}] [%t] %C:%L - %m%n" /> 
    </layout> 
</appender> 

를 펜더에 다른 PARAMS을 사용하여, 당신은 당신의 자신의 방법에 따라 그것을 사용자 정의 할 수 있습니다.

+0

어펜더를 이미 사용하고 있지만 제외해야합니다. @ adarshr의 답변이 그 자리에있는 것 같습니다. – Brabster

관련 문제