입사하였을 때 팀에서 사용하던 로깅 방식은 RollingFileAppender 를 이용하여 로깅을 하는 방법이었습니다. MaxFileSize와 File생성 개수의 제한을 두고 사용을 했습니다. 하지만 그렇게 로그를 쓰는 방식은 로그를 보기가 좀 어렵다는 단점이 있습니다.
제가 서버를 직접 관리하면 로그를 보는 데는 문제가 되지 않겠지만 전화 지원 또는 메일로 로깅을 요청하는 경우에는 해당파일에 대한 로그가 정확하게 언제까지 쌓여 있는지 확인이 불가 했습니다.
그래서 제가 선택한 방법은 DailyRollingFileAppender를 이용하여 하루에 한번씩 로그 파일을 나누는 방법을 사용했습니다. 그렇게 되면 관리자에게 로그 파일을 요청할 때 하루 전과 오늘 날짜의 파일만 요청하면 장애 원인에 대한 처리를 원활 하게 할 수 있었습니다.
지금까지는 문제가 안되었지만 문제가 될만한 부분에 대한 말을 들었습니다.
RollingFileAppender는 MaxFileSize와 파일 개수의 제한이 있습니다. 그렇기 때문에 혹시 WAS혹은 Socket에서 잘못된 무한 루프가 돌게 되도 Disk가 Full 되는 경우는 발생이 안될 것 같습니다.
그렇지만 DailyRollingFileAppender의 경우에는 MaxFileSize와 파일 개수에 제한이 없습니다. 그렇기 때문에 하루를 기준으로 쌓게 되면 24시간 동안 무한루프를 돌게 되면 충분히 DISK가 Full이 될 수 있습니다. 즉 잠재적인 장애 원인이 됩니다.
이것을 해결하기 위해서는 DailyRollingFileAppender에 MaxFileSize와 파일 개수의 제한을 두는 부분을 추가해서 사용을 하면 해결이 가능할 것 같습니다.
이미 구글에서 검색을 하게 되면 DailyRollingFileAppender를 수정한 버전이 많이 있는것 같습니다. RollingFileAppender 와 DailyRollingFileAppender에 대해 문제점이 발생될 수 있는지 먼저 테스트를 해보고 수정 부분에 대해 다시 한번 테스트를 진행 해봐야겠습니다.
2번째 포스팅에서 테스트 결과로 확인을 해봐야겠습니다.