특정 클래스에 log4j 설정 하기

프로젝트를 하다 보면 웹 어플리케이션 기본 로그를 남기지만, 모니터링 감지라든지, 외부 시스템에
로그를 전달하는 경우가 많이 있습니다.
저 같은 경우는 특정 로그를 남기는 클래스를 만들고, 별도의 lo4j 설정을 적용해서 처리를 합니다.
즉, 패키지 레벨에 적용하는 것이 아니라 “클래스” 레벨에 적용을 하는 것입니다.
심플하면서 나름 유용한 정보이니 참고 하시기 바랍니다.

※ 참고로 log4j 설치는 생략하도록 하겠습니다. 자세한 설치 방법은 (http://kimseunghyun76.tistory.com/8)
참고 하시기 바랍니다.

(1) Logger 클래스 설정

  • Logger를 생성할때 반드시 자기 클래스 타입 (“LogTest.class“)을 선언 합니다.
  • 샘플 예제이기 대문에 “hello log4j”를 출력 했습니다.

(2) log4j.xml 설정

  • 대부분 logger를 설정할때는 “패키지 레벨”을 적용 합니다. 하지만 위에서 보는 거와 같이
    클래스 full path 명을 기술 합니다.
  • additivity” 옵션은 “log4j“는 기본적으로 부모(root logger)를 상속 받기 때문에 이옵션을
    “true”로 할 경우 로그가 두번을 찍히게 됩니다. “false“를 선언하면 이걸 방지 할수 있습니다.
  • ConversionPattern” 는 로그 포맷을 설정 하는 부분입니다. “%m%n“를 선언하면 기본적으로
    제공하는 “log4j” 포맷을 무시하고, 말그대로 logger에서 찍는 그대로 로그를 남기고 싶을때
    를 말합니다.  본 예제를 실행 하면 아래와 같이 로그가 기록 됩니다.

  • 아래는 “log4j.properties” 를 쓰신 분들을 위한 설정 입니다.

(3) 예제 다운로드

  • 테스트 했던 예제를 올립니다. ^^ [다운로드]

예전 프로젝트에서는 모니터링 로그 수집시 위와 같이 응용을 했고,
이번에는 Flume-NG 수집시응용해서 사용중입니다.

Published by: beyondj2ee

Past SI AA, now I am pikicast developer in yellow mobile and daddy, Java, Spring, OpenSource, Application Architect :) Java Application Architect. mail : beyondj2ee@gmail.com twitter : twitter.com/beyondj2ee facebook : https:www.facebook.com/beyondj2ee blog: http:beyondj2ee.wordpress.com

Categories ArchitectureTags , , 댓글 남기기

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중