티스토리 뷰
1. root logger / parent logger
- root logger에 정의된 appender 설정이 하위 logger에도 적용된다.
- 즉 하위 logger에 또다른 appender가 있을 경우 2번의 로그가 찍힐 수 있다.
- 위와 같은 상황을 막으려면 어느 한쪽에는 additivity을 false로 설정한다.
- root logger는 필수 element는 아니지만, level 정도는 설정해두는 것이 좋다.
2. parent/child
- logger는 name-base로 부모/자식 관계가 성립된다.
- com.log 라는 logger가 있고, com.log.test 라는 logger를 정의할 경우
- com.log.test는 com.log의 하위 logger가 된다.
- http://seosh81.info/?p=404
3. slf4j, logback
- FACADE 패턴의 slf4j를 사용하면, 실제로 사용되는 logging 플랫폼(구현체)의 변경이 비교적 자유로워진다.
- slf4j와 logback은 log4j의 개발자가 log4j를 더 개선하여 새로 만든 오픈소스이다.
- logback은 log4j보다 성능면에서 더 낫다고 한다.
- logback은 시스템의 재시작 없이 로그 레벨을 변경할 수 있다고 한다. (warn이던 레벨을 INFO 변경하다던가... 운영환경의 디버깅 시 유용할 거 같다)
- logback은 자체 설정을 통해 롤링된 아카이빙 로그 파일을 관리할 수 있다. (일정 시간 뒤 오래된 데이터를 삭제하는..)
4. private static final Logger logger?
- private : class 내에서만 변수를 참조하겠다.
- static : class의 공유자원으로서 한 번만 생성해서 사용하겠다.
- final : 처음 한 번 초기화한 후 변경하지 않고 유지하겠다.
- Spring framework의 Context 안에서 Singleton Bean으로 Controller와 Service 객체가 생성되고 사용되는 이상 static이 의미가 있을까? 바이트코드 상으로 어떤 차이점이 있는지 궁금하다.
- private과 final은 붙이는 것이 나아보인다.
'공부 > Java, JSP' 카테고리의 다른 글
[멀티채팅] 뮤뮤챗 소스를 찾았는데... (0) | 2015.08.26 |
---|---|
[Thymeleaf] Url with pathvariable (1) | 2015.08.11 |
client IP 가져오기 (0) | 2015.07.27 |
Xstream :: List in Object (0) | 2015.06.04 |
xml parsing - Document, XPath (0) | 2015.05.20 |