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 |
|||||
|
|||||
[Modify] [Delete] | [Reply] [List] |