2011-09-08 2 views
4

우리는 log4j를 사용하는 고속, 고용량 응용 프로그램을 보유하고 있습니다. 일반적으로 우리는 SyslogAppender를 사용하여 가장 가벼우 며 가장 빠른 appender라고 생각했습니다. SYSLOG conf의 필터 규칙 때문에 많은 양의 SYSLOG에서 높은 CPU 사용률을 볼 수 있습니다.Log4j AsyncAppender

아마도 FileAppender 사용으로 전환하고 싶을 것입니다. 문제는 log4j AsyncAppender와 함께 사용하여 디스크에 플러시 (강제)하기 때문에 일시 중지를 제거하겠습니까?

(응용 프로그램이 매우 지연에 민감하므로 appender가 추가 할 수있는 대기 시간을 최소화해야합니다.) 또한 - SyslogAppender가 FileAppender보다 빠릅니다. 시작됨).

이 문제에 대한 의견을 보내 주시면 감사하겠습니다.

답변

6

저는 확실히 AsyncAppender를 사용합니다.

대기 시간이 짧은 응용 프로그램은 사실상 표준 파일 첨부기를 사용하지 않습니다. 분명히 그들은 공유 하드웨어 및 디스크에서 (OS) VM을 사용하고 있었기 때문에 하나의 VM이 디스크 IO를 독점 할 수 있었고 로그하려고 시도하는 동안 다른 VM을 중단시킬 수있었습니다.

JMS 및 기타 비동기 전략에 대한 로깅을 살펴볼 수도 있습니다.

+0

의견을 보내 주셔서 감사합니다. 상처받을 수없는 것처럼 보이며 아마도 도움이 될 것입니다. –

+0

우리는 많은 벤치마킹 작업을 수행했으며, 심지어 immediateFlush = false 인 일반 파일 appender와 비교할 때 비동기식 appender를 사용하면 어떻게 든 악화 될 것으로 보입니다. –

+0

일부 AsyncAppender 문제는 http://stackoverflow.com/a/13144054/603516을 참조하십시오. – Vadzim