du.study기록공간

logback 1.2.3 버전 thread 증가 이슈정리 본문

기타 잡다한 지식

logback 1.2.3 버전 thread 증가 이슈정리

du.study 2021. 10. 12. 00:58
728x90

프로젝트 상에서 logback 1.2.3을 사용하는 도중, logback-1,2,3,.. 등 하루에 하나씩 늘어나는 현상이 발견되어 이를 정리하고자 합니다.

 

우선 발단은 매일 같은시간대에 하나씩 증가하는 쓰레드였습니다.

이를 thread dump를 본 결과, logback thread가 점점 증가하는것을 알 수 있었고, 이는 TimeBasedRollingPolicy에서 발상하는것을 알 수 있었습니다.

 

logback을 설정할떄 다음과같이 몇일까지 로그파일 개수를 관리할지 결정하는 설정을 추가할 수 있습니다.

<maxHistory>7</maxHistory>

예를 들어 이설정을 통해 7개를 관리하게 되면

자신이 지정한 일자또는 시간 등의 파일을 최근 7개의 파일만 관리하는 그런 설정이 됩니다.

 

저희 프로젝트에서는 일자별로 로그를 적재하고있었기에, 매일 새로운 로그를 써야하는 타이밍에 비동기 동작으로 최대 파일 개수를 관리하는 로직이 돌아가게 되면서 thread를 생성하고 있었습니다.

 

그럼 무한대로 thread가 생성되는가?  답은 아닙니다.

ScheduledThreadPoolExecutor를 통해서 1.2.3 버전에서는 최대 8개까지 thread를 생성하도록 관리하고 있었기에 점점 늘어나는것 처럼 보였고, 실제로 코드 설정도, 재현결과도 8개이상 늘어나지 않는것을 확인했습니다.

 

만약 logback thread가 점점 늘어나는게 거슬린다면 1.2.3 이상의 버전을 보면 ScheduledThreadPoolExecutor 개수설정이 8 -> 1로 변경되었기에 버전업을 고려해보시는것도 좋을것 같습니다.

728x90
Comments