반응형
Log4j 1.x에서는 org.apache.log4j.spi.Filter 인터페이스를 구현하여 직접 필터를 만들어 사용해야 합니다. 필터는 로그 이벤트를 받아서 필터링한 뒤, 허용되는 로그 이벤트는 다음 단계로 전달하고, 거부되는 로그 이벤트는 출력하지 않습니다.
아래는 Log4j 1.x에서 직접 필터를 만드는 예시입니다.
import org.apache.log4j.spi.Filter;
import org.apache.log4j.spi.LoggingEvent;
public class SqlFilter extends Filter {
private String keyword; // 필터링할 문자열
public void setKeyword(String keyword) {
this.keyword = keyword;
}
public String getKeyword() {
return keyword;
}
public int decide(LoggingEvent event) {
if (event.getRenderedMessage().contains(keyword)) { // 로그 이벤트의 메시지에 필터링할 문자열이 포함되어 있다면
return Filter.DENY; // 거부
} else {
return Filter.ACCEPT; // 승인
}
}
}
위와 같이 필터 클래스를 만든 뒤, log4j.properties 또는 log4j.xml 파일에서 필터를 사용하도록 설정합니다.
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %x - %m%n"/>
</layout>
<filter class="com.example.SqlFilter">
<param name="keyword" value="SELECT * FROM my_table WHERE"/>
</filter>
</appender>
반응형
'WEB > SERVER' 카테고리의 다른 글
리눅스 alias 약어 등록 하는 방법 (0) | 2023.05.03 |
---|---|
마이바티스에서 특정 sql 만 로그 안 나오게 하는 방법 (1) | 2023.04.17 |
log4j 로그 레벨 단계 (0) | 2023.04.10 |