DEV Community

loading...

Log4j2 파일 기록 방식 차이점

Ukjin Yang
I'm a freelance full stack developer, from hell.
・1 min read

RollingFile

장점

  • 최소한의 간단한 세팅
  • OS(주로 *nix)의 파일 가공 용이 (외부 롤링 및 압축, 잠금 등)

단점

  • 오버헤드 (크지는 않지만 후술할 기술의 비해 상대적으로)

RollingRandomAccessFile

상술한 RollingFileAppender 기술은 BufferedOutputStream 클래스를 사용하지만, 이 기술은 ByteBuffer + RandomAccessFile 클래스 조합을 사용

장점

  • 뛰어난 파일 기록 성능 (공식 문서 상으로 20%에서 최대 200%까지)

단점

  • TriggeringPolicyRolloverStrategy 요소 필요 (보통 기본적으로 깔고 들어가기 때문에 단점같지는 않으나 RollingFileAppender 기술은 이 둘이 선택사항임)
  • OS(주로 *nix)와의 파일 상호작용 불가 (외부 롤링 및 압축, 잠금 등)

마치며

참고로 사용 방법은 둘이 똑같다. 요구사항에서 약간의 차이가 있고, 성능을 희생하는 대신 유연한 대응이 필요하냐, 아니면 성능 믿고 log4j2에 모두 위임할거냐 차이점에 대한 당신의 선택만 있으면 된다.
보통 log4j(및 여타 logging)에서 파일을 기록하려면 RollingFileAppender 사용법만 알려져 있으나, log4j2 사용 시 더 강력한 RollingRandomAccessFileAppender 기술이 있기에 이 기술을 한글로 소개하고자 기록하였다.

끗.

Discussion (0)