Log4j를 좀더 빠르게 써보자!!

Log4j는 기본적으로 write하는 메서드가 synchronized로 되어 있습니다.
이런 이유로 라인당 write, flush가 일어나고
그동안 다른 쓰레드가 wating 걸립니다.
일반적인 웹 서비스 같은 경우는 크게 문제 되지 않지만 대량의 데이터 로그를 Aggregation 해서 로그를 write하는 어플리케이션에게는 치명적 성능 이슈가 있습니다.
그래서 비동기적으로 기록 하면서 일정 버퍼가
쌓이면 Write 하는 방식으로 효율을 높이는 방법 입니다.

비동기 설정 방법은 아래의 사이트를 참고
하시면 어렵지 않게 하실것 같습니다.
JMSAppend, MailAppend, TcpAppend에 요긴 하게 사용 하세요

마지막으로 과금데이터 같은 미션 크리티컬 로그는 버퍼가 날아가면 loss 되기 때문에 이중백업, 또는 사용을 자제할 필요가 있습니다
“Asynchronous logging with log4j”

http://ricardozuasti.com/2009/asynchronous-logging-with-log4j/

답글 남기기

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

WordPress.com 로고

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

Twitter 사진

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

Facebook 사진

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

Google+ photo

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

%s에 연결하는 중