Log4j2에서 특정 SQL 문장 로그에서 제거

I. 목표

다비이스를 통해 주기적으로 데이터가 올라오는경우 로그에 SQL문장을 남겼을때 파일크기도 크고 로그양이 많아 디버깅하기가 용이하지 않아 특정 SQL 문장은 로그에서 기록하지 않도록 설정한다.

II. 연구및 개발내용

1. Log4j2.xml 파일수정

xml 파일에서 아래와 같이 RegexFilter를 이용하여 “NOT_WRITE_LOG”로 시작하는 단어가 있으면 로그를 기록하지 않도록 한다.

<RegexFilter regex=”(?s).*NOT_WRITE_LOG.*” onMatch=”DENY” onMismatch=”NEUTRAL”

useRawMsg=”true” />

 

 

<?xml version=”1.0″ encoding=”UTF-8″?>

<Configuration xmlns=”http://logging.apache.org/log4j/2.0/config”>

 

(생략)

 

<Loggers>

<logger name=”jdbc.sqlonly” level=”${logLevel}” additivity=”false”>

<RegexFilter regex=”(?s).*NOT_WRITE_LOG.*”

onMatch=”DENY” onMismatch=”NEUTRAL” useRawMsg=”true” />

 

<AppenderRef ref=”console” />

<AppenderRef ref=”appRollingFile” />

</logger>

 

(생략)

 

<Root level=”${logLevel}”>

<AppenderRef ref=”console” />

<AppenderRef ref=”appRollingFile” />

</Root>

</Loggers>

</Configuration>

 

 

 

2. Mybatis 쿼리 xml 파일에 주석으로 NOT_WRITE_LOG  마킹

<insert id=”insertTest” parameterType=”xxx.XxxVO”>

/* 테스트정보 삽입, NOT_WRITE_LOG : driver.location.insertTest */

INSERT INTO AAAA(DRV_NO

<if test=’traceDt != null’>, TRACE_DT</if>

<if test=’coordX != null and coordY != null’>, COORD</if>

(생략 )

</insert>

 

III. 결론

위와 같이 처리하고 이클립스에서 돌려보면 해당 쿼리가 출력되지 않는것을 확인할수 있다.

 

 

태그 , ,