Post

Log4j: RegexFilter로 특정 문구가 들어간 로그 안나오게 하기

예를 들어 스프링의 로그 창에서

1
2019-05-20 10:00:00,541 DEBUG [java.sql.ResultSet] {rset-000000} Result: [DO_NOT_DISPLAY_$@#%$%$#%$%...]

이런 형식의 로그들은 안보이게 하고 싶을 때 사용하는 방법이다.

 

Log4j.xml을 찾아서 <Logger> 밑에 다음을 추가한다.

<RegexFilter regex=".*[안보이게 할 문구].*" onMatch="DENY" onMismatch="NEUTRAL" />

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Appenders>
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="blablabla" />           
        </Console>
    </Appenders>
    <Loggers>
        <Logger name="java.sql" level="DEBUG" additivity="false">       	
            <RegexFilter regex=".*DO_NOT_DISPLAY.*" onMatch="DENY" onMismatch="NEUTRAL" />
            <AppenderRef ref="console" />            
        </Logger>
        <Logger name="aa.class" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="bb.class" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Logger name="cc.class" level="DEBUG" additivity="false">
            <AppenderRef ref="console" />
        </Logger>
        <Root level="ERROR">
            <AppenderRef ref="console" />
        </Root>
    </Loggers>
</Configuration>

This post is licensed under CC BY 4.0 by the author.