Spring Framework 프로젝트에서 Log4j로 로그 효율적으로 관리하기
이번 포스팅에서는 Spring Framework 프로젝트에서 Log4j를 활용해 로그(log)를 효율적으로 관리하는 방법을 알려드립니다. 특히 DEBUG 레벨로 로그를 설정하고, 로그 내용을 파일 형태로 저장하는 방법을 중점적으로 다룹니다.
1. Log4j란?
Log4j는 Apache에서 개발한 자바 기반 로깅 라이브러리로, 애플리케이션에서 발생하는 다양한 이벤트(오류, 정보, 디버그 등)를 기록하고 관리하는 데 사용됩니다. 개발 및 운영 환경에서 문제 발생 시 원인 분석에 필수적인 도구입니다.
2. Log4j 설정 파일 (log4j.xml) 수정
Log4j의 동작은 log4j.xml 파일을 통해 설정합니다. 이 파일을 수정하여 로그 레벨과 출력 방식을 제어할 수 있습니다.
2.1 로그 레벨 DEBUG로 변경
log4j.xml에서 <logger> 태그 내 <level> 값을 info에서 debug로 변경합니다.
<logger name="com.future.my" additivity="false">
<level value="debug" />
<appender-ref ref="console" />
</logger>
DEBUG 레벨로 설정하면 debug, info, warn, error 등 모든 레벨의 로그 메시지를 캡처합니다.
2.2 로그 내용을 파일 형태로 관리 (File Appender 추가)
로그를 콘솔뿐 아니라 파일로도 저장하기 위해 DailyRollingFileAppender를 추가합니다. 이 Appender는 일자별로 로그 파일을 자동 생성 및 롤링합니다.
<appender name="fileLogger" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="./log/spring.log"/>
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss}] %-5p: %F:%L %m%n" />
</layout>
</appender>
<logger name="com.future.my" additivity="false">
<level value="debug" />
<appender-ref ref="fileLogger" />
<appender-ref ref="console" />
</logger>
value="./log/spring.log"는 프로젝트 실행 경로 기준으로 log 폴더 안에 spring.log 파일로 로그를 저장함을 의미합니다.
3. HomeController에서 Logger 사용 예시
Spring 컨트롤러나 서비스 클래스에서 Logger 인스턴스를 생성하여 로그를 기록하는 기본적인 예시입니다.
package com.future.my.home;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Locale locale, Model model) {
logger.info("Welcome home! The client locale is {}.", locale);
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate);
return "home";
}
}
위 코드에서 logger.info(...) 호출 시, log4j.xml 설정에 따라 콘솔과 로그 파일에 모두 기록됩니다.
4. 로그 저장 결과 확인
설정을 완료하고 애플리케이션을 실행하면, 프로젝트 경로 내에 log 폴더가 생성되고 그 안에 spring.log 파일이 생성되어 로그 내용이 기록되는 것을 확인할 수 있습니다.
이처럼 Log4j를 활용하면 애플리케이션 동작 상황을 상세하게 기록하고 관리하여, 개발 및 운영 시 문제 발생 원인 분석과 해결에 큰 도움을 줍니다.
'SPRING' 카테고리의 다른 글
| Spring.스프링 프레임워크 - Rest (0) | 2025.06.07 |
|---|---|
| Spring.스프링 프레임워크 - 암호화 (0) | 2025.06.07 |
| Spring.스프링 프레임워크 - 프로필 (1) | 2025.06.03 |
| Spring.스프링 프레임워크 - 댓글 (1) | 2025.06.03 |
| Spring.스프링 프레임워크 - 게시판 (0) | 2025.06.03 |