4,552,066 th visitor since 2017.2.1 ( Today : 651 )
Programming
No. 693
Name. swindler
Subject. Log4j 필터 설정하기
Main Cate. JSP/Servlet
Sub Cate. Java
Date. 2013-01-04 11:13
Hit. 9149 (211.36.27.3)
File.
Log4j를 사용하면서 필터로 걸러내야 할 경우가 있다.

이럴 경우 사용할 수 있는 필터가 몇개 있는데,
그중에서도 단순히 String Match로 필터를 걸러내는게 가능하다.

다른 필터들에 대해서는 아래 api 문서를 참고하기 바란다.
https://logging.apache.org/log4j/1.2/apidocs/index.html


StringMatchFilter에 대해서 구글링을 해 보면 xml type의 설정파일에 대한 예제는 잘 나와 있으나, log4j.properties 파일로 설정하는 경우에 대해서 말이 많다.

혹자는 지원하지 않는다고도 한다. -> 개뻥이다.
Note that filtering is only supported by the DOMConfigurator. The PropertyConfigurator does not support filters.


내가 직접 테스트해봤다.


log4j.appender.WEBAPP.filter.1=org.apache.log4j.varia.StringMatchFilter
log4j.appender.WEBAPP.filter.1.StringToMatch=aaaaa
log4j.appender.WEBAPP.filter.1.AcceptOnMatch=false
log4j.appender.WEBAPP.filter.2=org.apache.log4j.varia.StringMatchFilter
log4j.appender.WEBAPP.filter.2.StringToMatch=bbbbb
log4j.appender.WEBAPP.filter.2.AcceptOnMatch=false


이런식으로 설정하면
로그내용에 aaaaa나 bbbbb가 들어간 로그는 출력하지 않게 된다.
테스트한 버전은 log4j 1.2.16이고,
일부 버전에서 안 된다는 말도 있다.


참고로, 로그 문자열에 대한 match를 하는것이고,
Class명에 대해서는 매치를 하지 않는다.
즉, 특정 class만 걸러내기 위해서는 이 필터를 사용할 수 없다는 뜻이고,
log4j filter class들을 찾아봐도 그런 필터가 존재하지 않는다.

(log4j 2.x 버전에는 수많은 기능이 추가된듯...)


[바로가기 링크] : http://coolx.net/cboard/develop/693



swindler log4j.logger.com.coolx=OFF 라고 설정하면 com.coolx패키지내의 모든 클래스 로그가 남지 않는다. 2013-01-04
Name
Password
Comment
Copyright © 1999-2017, swindler. All rights reserved. 367,611 visitor ( 1999.1.8-2004.5.26 ), 2,405,771 ( -2017.01.31)

  2HLAB   2HLAB_Blog   RedToolBox   Omil   Omil_Blog