📝 log4j란?

정의

log4j는 Java 애플리케이션에서 로그를 남기기 위한 로깅 라이브러리이다. 애플리케이션 실행 중 발생하는 상태, 오류, 흐름을 기록하는 데 사용한다.

🎯 사용하는 이유

  • 실행 흐름을 기록한다.
  • 오류 원인을 추적한다.
  • 운영 환경에서 상태를 확인한다.
  • 장애 발생 시 로그를 기반으로 분석한다.

포인트

로그는 단순 출력이 아니라 운영과 장애 분석을 위한 기록이다.

🧱 주요 개념

  • Logger: 로그를 남기는 주체
  • Appender: 로그를 출력하는 대상
  • Layout: 로그 출력 형식
  • Level: 로그 중요도

🔍 로그 레벨

  • TRACE
  • DEBUG
  • INFO
  • WARN
  • ERROR
  • FATAL

[!important] 주의 로그 레벨을 너무 낮게 두면 불필요한 로그가 너무 많이 쌓이고, 너무 높게 두면 중요한 단서를 놓칠 수 있다.

🔄 log4j와 log4j2

  • log4j는 오래된 Java 로깅 라이브러리이다.
  • 실무에서는 보통 log4j2 또는 SLF4J와 함께 사용한다.
  • 기능과 성능 측면에서 log4j2가 더 많이 언급된다.

정리

현재는 log4j 단독보다 log4j2와의 관계를 같이 이해하는 것이 더 중요하다.

🛠️ 기본 설정 예시

log4j.rootLogger=INFO, console, file

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/app.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=7
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c - %m%n

⚠️ 주의할 점

  • 로그 레벨과 출력 대상은 운영 환경에 맞게 조정한다.
  • 민감한 정보는 로그에 남기지 않는다.
  • 로그 파일이 너무 커지지 않도록 롤링 정책을 함께 둔다.
  • 오래된 프로젝트는 log4jlog4j2를 혼동하지 않도록 주의한다.

🧾 정리

log4j는 Java 로깅의 기본 개념을 이해하는 데 중요한 라이브러리다. 실무에서는 로그 레벨, 출력 형식, 롤링 정책을 함께 관리하는 것이 핵심이다.


연결문서

댓글남기기