로깅 프레임워크

moon.kick·2025년 4월 17일

물론이죠! 아래에 log4j의 개념과 구조를 초보자도 쉽게 이해할 수 있도록 정리된 표와 요약으로 구성해드릴게요.


✅ 1. log4j란?

  • Java 기반오픈소스 로깅 프레임워크
  • 개발 중 에러, 상태, 디버깅 메시지 등을 효과적으로 기록할 수 있음
  • 콘솔, 파일, DB 등 다양한 위치에 로그를 남길 수 있음

✅ 2. log4j의 주요 구성요소

구성요소역할
Logger로그를 남길 주체. 로그 메시지를 Appender로 전달
Appender로그를 저장할 위치를 지정 (콘솔, 파일, DB 등)
Layout로그의 출력 형식을 결정 (날짜, 메시지, 클래스명 등)

✨ Layout 패턴 옵션 정리

패턴설명
%d로그 발생 시간
%p로그 레벨 (INFO, DEBUG 등)
%t로그를 발생시킨 스레드 이름
%c카테고리 (보통 클래스 이름)
%F로그를 발생시킨 파일 이름
%L로그를 발생시킨 코드의 줄 번호
%C클래스 이름 (전체 경로 포함)
%M메서드 이름
%m실제 메시지
%n줄바꿈 (개행문자)
%l%C.%M(%F:%L) 전체 정보 요약

✅ 3. log4j 로그 레벨 (중요도 순서)

레벨설명운영 시 사용 여부
FATAL치명적인 오류, 시스템 종료 가능성 있음
ERROR일반적인 에러 상황
WARN경고 상황 (에러는 아님)
INFO상태 메시지, 일반 정보◎ (운영 시 추천)
DEBUG상세한 디버깅 정보△ (개발 시에만)
TRACE가장 상세한 로그× (거의 사용 안 함)

DEBUG 레벨로 설정하면: DEBUG 이상(FATAL까지) 모두 출력됨
INFO 레벨로 설정하면: INFO 이상(FATAL까지)만 출력됨


✅ 4. log4j 설정 예시

📁 설정 파일 위치

  • 개발 (Eclipse): src 폴더
  • 배포 (Tomcat): WEB-INF/classes 폴더

🔧 설정 예시: log4j.properties

log4j.rootLogger=INFO, Console, FileCompareAppender

# 콘솔에 출력
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%p] %c - %m%n

# 파일에 출력
log4j.appender.FileCompareAppender=org.apache.log4j.FileAppender
log4j.appender.FileCompareAppender.File=logs/mylog.log
log4j.appender.FileCompareAppender.Append=false
log4j.appender.FileCompareAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.FileCompareAppender.layout.ConversionPattern=%d [%p] %c %M:%L - %m%n

✅ 5. 로그를 위한 필수 라이브러리

라이브러리 이름용도
log4j.jarlog4j 메인 라이브러리
commons-logging.jar다른 라이브러리와의 연결(Bridge 역할)

✅ 부가 팁

목적설정 방법
매번 새 로그 파일 생성log4j.appender.FileCompareAppender.Append=false
특정 클래스에만 로그 적용log4j.category.클래스이름=INFO, Appender명
콘솔/파일 로그 동시 사용log4j.rootLogger=INFO, Console, FileAppender

필요하다면 예제 코드나 설정파일 템플릿도 따로 정리해줄게요. 더 도와드릴까요? 😎

profile
@mgkick

0개의 댓글