Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[Spring Boot] 로깅 기능 라이브러리 Log4j와 properties 파일: 로그 설정정보 세팅 및 @Slf4j 본문
Backend/스프링부트
[Spring Boot] 로깅 기능 라이브러리 Log4j와 properties 파일: 로그 설정정보 세팅 및 @Slf4j
Gaejirang-e 2022. 12. 24. 19:16
𐂂 로그(Log)
서버에 남는 일련의 기록 (ip주소, os...)
🧸 로깅이란: 로그(Log)를 생성하는 활동
🧸 로깅이란: 로그(Log)를 생성하는 활동
📜 Log4jInit.java
@WebServlet("/Log4jInit")
public class Log4jInit extends HttpServlet {
private static final long serialVersionUID = 1L;
//work 작업영역의 로그를 관리하는 Logger객체(로그 분류 및 기록) 생성
private Logger work_log = Logger.getLogger("work");
public void init(ServletConfig config) throws ServletException {
//루트 경로에 해당하는 실제 파일 시스템 경로 가져오기
String prefix = config.getServletContext().getRealPath("/");
//지정된 이름의(log4j-init-file) 설정된 초기화 매개변수값 가져오기
String file = config.getInitParameter("log4j-init-file");
if(file != null) {
//지정된 .properties 파일을 로드하여 설정정보 가져오기
PropertyConfigurator.configure(prefix + file);
//로깅 레벨 (DEBUG, INFO, WARN, ERROR, FATAL)에 따른 로그 메시지 작성
work_log.debug("Log4J Logging started: " + prefix + file);
} else {
work_log.debug("Log4J Is not configured for your Application: " + prefix + file);
}
}
}
🦉 getServletContext()
: 웹 애플리케이션의 컨텍스트를 반환
🧸 서블릿 컨텍스트(ServletContext)란: 웹 애플리케이션에서 공유되는 정보를 관리하는 객체를 말한다.
.getRealPath("[특정경로]"): 웹 애플리케이션 내의 특정 경로에 대한 실제 📀파일시스템 경로를 반환
: 웹 애플리케이션의 컨텍스트를 반환
🧸 서블릿 컨텍스트(ServletContext)란: 웹 애플리케이션에서 공유되는 정보를 관리하는 객체를 말한다.
.getRealPath("[특정경로]"): 웹 애플리케이션 내의 특정 경로에 대한 실제 📀파일시스템 경로를 반환
🦉 getInitParameter("log4j-init-file")
: 웹 애플리케이션에서 지정된 이름의 초기화 매개변수값 가져오기
⚠️ web.xml or 어노테이션을 통해 초기화 매개변수값을 설정할 수 있다.
: 웹 애플리케이션에서 지정된 이름의 초기화 매개변수값 가져오기
⚠️ web.xml or 어노테이션을 통해 초기화 매개변수값을 설정할 수 있다.
<context-param>
<param-name>log4j-init-file</param-name>
<param-value>/WEB-INF/log4j.properties</param-value>
</context-param>
𖠃 로깅 기능 라이브러리 Log4j에서 제공하는 클래스, PropertyConfigurator
로그 설정을 .properties 파일을 통해 구성하고 초기화하는 역할을 한다.
PropertyConfigurator.configure("[properties 파일]");
지정된 properties 파일을 로드하여, ⚙️ 설정정보를 읽어온다.
이 설정정보를 바탕으로 Log4j가 로그 출력방식, 로그 레벨, 로그 파일위치 등을 설정한다.
Logger 인스턴스를 생성하여 로그를 작성할 때, 설정정보에 따라 로그가 기록된다.
🍮 로그 레벨
개발모드: .debug(), .info()
운영모드: .info()
PropertyConfigurator.configure("[properties 파일]");
지정된 properties 파일을 로드하여, ⚙️ 설정정보를 읽어온다.
이 설정정보를 바탕으로 Log4j가 로그 출력방식, 로그 레벨, 로그 파일위치 등을 설정한다.
Logger 인스턴스를 생성하여 로그를 작성할 때, 설정정보에 따라 로그가 기록된다.
🍮 로그 레벨
개발모드: .debug(), .info()
운영모드: .info()
📜 application.yml
logging:
level:
[Directory path]: debug
𐁍 @Slf4j (Simple logging facade for java)
🧸 로깅 퍼사드(Logging Facade)
: 실제 로거는 아니지만, 여러가지 로거를 바꿔서 사용할 수 있는 인터페이스
즉, @Slf4j는 다양한 로거를 하나의 통일된 방식으로 사용하는 방법을 제공
: 실제 로거는 아니지만, 여러가지 로거를 바꿔서 사용할 수 있는 인터페이스
즉, @Slf4j는 다양한 로거를 하나의 통일된 방식으로 사용하는 방법을 제공
'Backend > 스프링부트' 카테고리의 다른 글
[Spring Boot] 프로필 이미지 업데이트와 캐시 (0) | 2022.12.25 |
---|---|
[Spring Boot] 업로드한 프로필 이미지 저장과 모듈화 (0) | 2022.12.25 |
[Spring Boot] OAuth2와 카카오 로그인을 위한 의존성 추가 및 설정작업 (0) | 2022.12.21 |
[Spring Boot] 브라우저 안의 웹캐시 사용하기 (0) | 2022.12.21 |
[Spring Boot] 이미지를 경유해서 보여주기 (0) | 2022.12.19 |
Comments