윈도우에 설치된 톰켓의 stdout로그는 일자별로 분할이 되지가 않아서 로그의 용량이 기가가 넘어가는 일이 빈번하게 생긴다.
그렇다 보니 로그 보기도 불편하고, 일단 에디터로 열기도 만만치 않다...그래서 logback으로 갈아 탈까 하다 찾아 보니
log4j2에서 일자별, 용량별로 파일을 분할이 가능 하다는 것을 찾았다.
아래는 log4j2의 기본 설정 xml 파일의 내용이다.

여기서 몇개 xml태그를 추가를 해야 된다.
우선 태그 위에

Test
%d{yyyy-MM-dd HH:mm:ss.SSS} | %5p | [%c] %m%n

를 추가 한다. 위의 값은 밑에서 사용할 예정이다.

1
2
3
4
5
6
<Appenders> 
    <Console name="console" target="SYSTEM_OUT"> 
        <PatternLayout pattern="%d %5p [%c] %m%n" /> 
    </Console> 
</Appenders>
 
cs
이 부분을 아래처럼 변경해 준다.

${pattern}

${pattern}

위에서
${pattern} 은 처음에 추가한 의
%d{yyyy-MM-dd HH:mm:ss.SSS} | %5p | [%c] %m%n 이다
그리고 밑에 이 추가 됬는데 이부분이 로그 파일의 파일명 패턴이다. 위 처럼 하게 되면
log\2019\04\30\Test_2019-04-30_10_40_10_111.log 이러게 일자별로 로그 파일이 생성이 되게 된다.
이렇게 했으면 에 를 추가 해야 된다.

아래는 전체 소스 이다.

Test %d{yyyy-MM-dd HH:mm:ss.SSS} | %5p | [%c] %m%n ${pattern} ${pattern}

테스트 해본 결과를 말해 보자면, 로그가 날짜별로 바로 생성이 되는건 아닌거 같아 보인다.
로그가 생성이 되면, 의 속성 값인 fileName="log/${name}.log" 으로 정의된 이름으로 지정된 디렉토리 루트에 먼저 생성이 되서 기록이 되고, 어느정도 로그가 쌓이면 그때 날짜별로 로그 파일이 생성이 되는거 같다.
처음에는 로그파일이 날짜별로 생성이 되지 않길래 설정이 잘못 된건가 했는데, 테스트 한다고 화면 왔다갔다 몇번 하다 보니 어느 순간 생성이 되어있었다.
위 처럼 log4j2.xml 을 작성해서 구동을 해보면 톰켓의 기본 로그인 stdout쪽에도 로그가 나오고 위 설정된 폴더에도 로그가 같이 쌓이는걸 볼수 있었다. 우선은 그냥 두지만 추후에는 한쪽에만 나오게 해봐야겠다...

출처 : https://penthegom.tistory.com/14

끝!!

복사했습니다!