Log4j 설정 파일 개요
Log4j 설정 파일은 로거 레벨, 어펜더 출력 대상, 레이아웃 포맷을 정의합니다. 주요 구성 요소는 다음과 같습니다:
기본 구성 구조
# 루트 로거 설정
log4j.rootLogger = [레벨], [어펜더1], [어펜더2]
# 어펜더 출력 대상 정의
log4j.appender.[어펜더명] = [클래스 풀네임]
log4j.appender.[어펜더명].[속성] = [값]
# 출력 형식 지정
log4j.appender.[어펜더명].layout = [레이아웃 클래스]
log4j.appender.[어펜더명].layout.[속성] = [값]
로그 레벨 종류
- FATAL: 치명적 오류
- ERROR: 실행 오류
- WARN: 경고
- INFO: 정보성
- DEBUG: 디버깅
출력 대상(Appender) 유형
ConsoleAppender: 콘솔 출력
FileAppender: 파일 기록
DailyRollingFileAppender: 일자별 파일 생성
RollingFileAppender: 크기 제한 파일 생성
WriterAppender: 스트림 기반 출력
레이아웃(Layout) 형식
HTMLLayout: HTML 테이블 형식
PatternLayout: 사용자 정의 패턴
SimpleLayout: 기본 텍스트 형식
TTCCLayout: 시간-스레드-카테고리 정보
패턴 형식 지정자
%m: 로그 메시지
%p: 우선순위(레벨)
%c: 로거 카테고리
%t: 스레드 이름
%n: 개행 문자
%d: 날짜/시간 (예: %d{yyyy-MM-dd HH:mm:ss})
%l: 소스 위치(클래스,라인)
로거 초기화 방법
- 프로그램 내 기본 설정:
BasicConfigurator.configure() - 명령행 인자 전달:
PropertyConfigurator.configure("경로") - 환경 변수 활용
- 서블릿을 통한 구성
레벨별 출력 분리 예시
### 레벨 및 어펜더 설정 ###
log4j.rootLogger = DEBUG, CONSOLE, FILE_DEBUG, FILE_ERROR
### 콘솔 출력 ###
log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern = [%t] %-5p %c - %m%n
### 디버그 파일 출력 ###
log4j.appender.FILE_DEBUG = org.apache.log4j.RollingFileAppender
log4j.appender.FILE_DEBUG.File = logs/debug.log
log4j.appender.FILE_DEBUG.Threshold = DEBUG
log4j.appender.FILE_DEBUG.layout = org.apache.log4j.PatternLayout
log4j.appender.FILE_DEBUG.layout.ConversionPattern = %d %p %c - %m%n
### 에러 파일 출력 ###
log4j.appender.FILE_ERROR = org.apache.log4j.RollingFileAppender
log4j.appender.FILE_ERROR.File = logs/error.log
log4j.appender.FILE_ERROR.Threshold = ERROR
log4j.appender.FILE_ERROR.layout = org.apache.log4j.PatternLayout
구성 파일 로드 예제
public class LogInitializer {
public static void main(String[] args) {
PropertyConfigurator.configure("config/log4j.properties");
Logger log = Logger.getLogger(LogInitializer.class);
log.debug("디버그 메시지");
log.error("오류 메시지");
}
}