을 사용하여 웹 및 XML 컨텐트를 특정 파일에 기록하는 log4j2
애 펜더가 있습니다.log4j2를 사용하여 로그 문을 특정 파일로 라우팅하는 방법은 무엇입니까?
<Appenders>
<RollingRandomAccessFile name="WEB" fileName="web.log">
<Filters>
<ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"/>
<MarkerFilter marker="WEB" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
</RollingRandomAccessFile>
</Appenders>
다음과 같이 내가 성공적으로 내 코드에서 사용할 수 있습니다 :
<Appenders>
<Console name="CONSOLE" target="SYSTEM_OUT">
<ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY" />
</Console>
<RollingRandomAccessFile name="WEB" .../>
</Appenders>
<Loggers>
<Root level="all">
<AppenderRef ref="CONSOLE" />
<AppenderRef ref="WEB" />
</Root>
</Loggers>
:하지만 이제 다음 클래스를
이logger.info(MarkerFactory.getMarker("WEB"), "myinfo");
는 또한 나는 내용이 콘솔을 SYSOUT을 인쇄하려면 DEBUG
모드로 로그인해야하며 web.log
파일에만 로그인해야하며 콘솔에서도 볼 수 있습니다.
<Loggers>
<logger name="org.springframework.web.filter.CommonsRequestLoggingFilter"
level="DEBUG">
<AppenderRef ref="WEB" />
</logger>
</Loggers>
결과 :
1) 필터 내용이 CONSOLE
에 파일에 인쇄 된 것이 아니라 : 2 문제가있다. 나는 둘 다에 로그인하고 싶다.
2) 마커없이 로그 된 일반 정보 로깅 (예 : logger.info("test")
)은 WEB.log 파일에도 기록됩니다. 나는 이것을 막고 싶다.
구성이 잘못되었습니다.
WEB 마커 문을 기록하려고합니다. web.log에만 있습니다. 하지만 CommonsRequestLoggingFilter 출력을 콘솔 + WEB 마커에 모두 기록하고 싶습니다. – membersound
감사합니다, 포인트 2에 관해서 : 나는 루트 로거 *가 항상 WEB에 로그하는 것을 원하지 않는다. CommonsRequestLoggingFilter가 WEB에만 로깅되기를 원합니다. 다른 모든 루트 로깅은 변경되지 않아야합니다. – membersound
웹 마커가 없으면 어떻게해야합니까? 그냥 콘솔에 로그인해야합니까? – Ishnark