"info"출력이 일부 로그 파일에만 기록되는 동안 "debug"및 "info"출력을 콘솔에 기록 할 수 있습니까? 예를 들어, 다음 로깅이 주어진 경우 :다른 로그 레벨이 다른 appender로 이동하도록 log4j 출력을 어떻게 지시 할 수 있습니까?
LOG.debug(fileContent);
LOG.info(fileLength);
해당 log4j.xml
은 어떤 모양입니까?
"info"출력이 일부 로그 파일에만 기록되는 동안 "debug"및 "info"출력을 콘솔에 기록 할 수 있습니까? 예를 들어, 다음 로깅이 주어진 경우 :다른 로그 레벨이 다른 appender로 이동하도록 log4j 출력을 어떻게 지시 할 수 있습니까?
LOG.debug(fileContent);
LOG.info(fileLength);
해당 log4j.xml
은 어떤 모양입니까?
확실히 가능합니다.
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
...
</appender>
<appender name="otherAppender"
class="org.apache.log4j.FileAppender FileAppender">
...
</appender>
<logger name="com.mycompany.mypackage.MyClass">
<level value="info"/>
<appender-ref ref="otherAppender" />
</logger>
<root>
<priority value="debug" />
<appender-ref ref="console" />
</root>
</log4j:configuration>
모든 디버그 및 정보 메시지가 console
펜더로 이동합니다 구성은 (구문 정확성을 검사하지 않음)과 같이 보일 것입니다. 정보 메시지는 otherAppender
입니다.
몇 가지 예는 this 페이지로 이동하십시오.
프로그램에 두 개의 서로 다른 appender를 추가하는 것만 큼 간단합니다. 각 로깅 유형에 대해 하나의 appender를 사용하면됩니다.
Eddie의 구성을 통해 MyClass의 "info"출력 만 얻을 수 있습니다. 하지만 내가 갖고 싶은 것은 MyClass의 "info"출력이 파일로 보내고 MyClass의 "debug"출력이 콘솔로 간다는 것입니다.
은 rwwilden 제안하지만,이 부분 제거 마십시오
<logger name="com.mycompany.mypackage.MyClass">
<level value="info"/>
<appender-ref ref="otherAppender" />
</logger>
을 그리고 otherAppender에서 <param name="Threshold" value="INFO"/>
를 추가합니다.
좋아, 내가 지금 가지고 : 당신의 도움에 대한
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
...
</appender>
<appender name="otherAppender"
class="org.apache.log4j.FileAppender FileAppender">
<param name="Threshold" value="INFO"/>
...
</appender>
<root>
<priority value="debug" />
<appender-ref ref="console" />
<appender-ref ref="otherAppender" />
</root>
</log4j:configuration>
감사합니다!
답변에 약간의 수정을가했습니다. 괜찮 으면 좋겠다. – Eddie
괜찮습니다. 고마워요! –