'Log4J'에 해당되는 글 2

  1. 2012.06.30 [log4j] 하나의 로그 파일에 여러 프로세스에서 로그를 남기는 경우 문제점
  2. 2010.03.05 로깅 레벨 이해하기

[log4j] 하나의 로그 파일에 여러 프로세스에서 로그를 남기는 경우 문제점

기존의 어플리케이션(EP)에서 log4j(slf4j)를 이용해서 파일에 로그를 남기고 있었다.
DailyRollingFileAppender를 사용하고 있었음.

EJB를 추가하면서 동일한 로그 파일에 로그를 남기도록 설정을 했음.
결국은 다른 프로세스에서 동일한 로그 파일에 로그를 쌓게 되었음.

처음에는 로그가 잘 남았는데 하루? 정도 지나니깐 로그가 남지 않음.
app.log였는데 더 이상 로그가 쌓이지 않는다.
찾다가 보니 app.log.2012-06-29 파일이 계속 변하고 있다.
파일을 열어 보니 기존의 어플리케이션에서 남기는 로그가 계속 남고 있음.
그러나 EJB에서 남기는 로그는 없다.

개발시 로그를 편하게 보기 위해서 하나의 로그 파일에 남기도록 했는데 부작용이 발생한다.
EJB에서는 다른 로그 파일에 남기도록 함.

로깅 레벨 이해하기

- log4j를 사용하였지만 대부분의 로깅 프레임워크에 통용된다.
- 설정된 레벨이하가 로깅된다.
ALL
0 [main] TRACE test.SimpleLogTest  - trace
0 [main] DEBUG test.SimpleLogTest  - debug
0 [main] INFO test.SimpleLogTest  - info
0 [main] WARN test.SimpleLogTest  - warn
0 [main] ERROR test.SimpleLogTest  - error
0 [main] FATAL test.SimpleLogTest  - fatal
TRACE
0 [main] TRACE test.SimpleLogTest  - trace
0 [main] DEBUG test.SimpleLogTest  - debug
0 [main] INFO test.SimpleLogTest  - info
0 [main] WARN test.SimpleLogTest  - warn
0 [main] ERROR test.SimpleLogTest  - error
0 [main] FATAL test.SimpleLogTest  - fatal
DEBUG
16 [main] DEBUG test.SimpleLogTest  - debug
16 [main] INFO test.SimpleLogTest  - info
16 [main] WARN test.SimpleLogTest  - warn
16 [main] ERROR test.SimpleLogTest  - error
16 [main] FATAL test.SimpleLogTest  - fatal
INFO
16 [main] INFO test.SimpleLogTest  - info
16 [main] WARN test.SimpleLogTest  - warn
16 [main] ERROR test.SimpleLogTest  - error
16 [main] FATAL test.SimpleLogTest  - fatal
WARN
16 [main] WARN test.SimpleLogTest  - warn
172 [main] ERROR test.SimpleLogTest  - error
172 [main] FATAL test.SimpleLogTest  - fatal
ERROR
172 [main] ERROR test.SimpleLogTest  - error
172 [main] FATAL test.SimpleLogTest  - fatal
FATAL
172 [main] FATAL test.SimpleLogTest  - fatal
OFF