개발 이야기/backend

springboot에 log4j2 설정하기(gradle버전)

thisisamrd 2023. 10. 9.

 

log4j2 설정하기

springboot 모르는 사람이 보기에도 직관적이었고 gradle 버전 7일 경우의 설정방법이라 따라하기 쉬웠다


 

8. 스프링부트 Log4j2 적용하기

우선 추후 개발하기 편하게끔 스프링부트에 Log4j2 부터 적용하겠습니다.

linked2ev.github.io

 

 

 

 lombok 설치하기

 

 

[Spring Boot] 스프링 부트 로그 설정 (log4j2)

목차 0. 환경 windows10 openjdk version "11" 2018-09-25 IntelliJ Tool Spring Boot 2.5.6 Gradle Project MyBatis + Mysql + HikariCP를 이용해 DB(Mysql) 연동할 프로젝트입니다. 1. 성능 log4j2는 Spring Boot에 기본으로 적용되어있는

veneas.tistory.com

 

 

[Spring-Boot] Lombok을 사용해보자.

| Lombok || 경로 설정 먼저Lombok 을 설치하자. cmd에서 Lombok이 설치된 경로로 이동한 후아래 명령어를 입력해보자. java -jar lombok.jar Eclipse 는 체크를 풀어주고STS.exe 파일을 추가해준다. 성공적으로 ins

data-make.tistory.com

 

 

유의사항


설치하기 전 내 개발환경을 먼저 알아야함.
나는 이클립스(sts) + gradle 7.5 + 롬복 안깔린 상태 였음.
gradle 버전 확인하려면 내 프로젝트 우클릭 - show in local terminal에서 gradlew --version 치면 볼 수 있음. 

롬복부터 설치방법이 다양한데 springboot에서는 따로 라이브러리를 build path로 안가져와도 되는 모양임.
대신 build.gradle에 lombok 관련 셋팅하고 gradle refresh 함. 이때 gradle 버전에 따라서 lombok 관련 적어넣는 사항이 다르니 gradle 버전 체크해야하고, 검색할때도 gradle 버전에 맞는 lombok 설치법을 찾아봐야 함.

그 다음 terminal 켜서 lombok이 위치한 곳 간다음 java -jar lombok.jar 해주면 되는데
스프링 책 보면서 할때는 STS.ini 파일에 위치시키라고 했는데
이번에는 STS.exe에 위치시켰더니 되었다.
사실 둘 다 됐는데 내가 헷갈린걸수도 있음.
무튼 롬복 설치 잘 되었는지 확인하려면 STS.ini 파일 들어가서 lombok 검색해서 있는지 확인하면 됨.

생각해보니까 내가 자꾸 실패한 이유 중 또 하나가 lombok은 build.gradle에 설정 잘 해두고서
정작 log4j2를 설정하지 않았던 것 같음
log4j2는 저기 위 두 링크 조합해가면서 잘 적고 refresh 하면 됨.


그다음 log4j2.xml파일도 만들어야하는데 
이때 root level이 error로 되어있어서 info를 찍는데도 자꾸 안나와버림.
Root level을 INFO로 바꿔주자..

그러고서 LogTestController같은거 하나 만들고 테스트 해보면 될거다.
아래는 log4j2 사용 문법이다.


 

[Java] 간단한 로깅(Logging) 사용 방법

SLF4J 라이브러리를 이용한 로깅 방법 로깅 라이브러리 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데 스프링 부트에서 이것들을 통합해서 인터페이스로 제공하는 것이

cornarong.tistory.com

 


그리고 함께 보면 좋을 글들

 

Log4j2 Example Tutorial - Configuration, Levels, Appenders | DigitalOcean

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

www.digitalocean.com

 

 

 

[logtest controller]

package com.chatbot;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import lombok.extern.log4j.Log4j2;

@Log4j2
@RestController
public class LogTestController {

    @GetMapping(value = "/log")
    public void log() throws Exception {

        //FATAL, ERROR, WARN, INFO, DEBUG, TRACE
      log.trace("Hi I'm {} log", "TRACE");
         log.debug("Hi I'm {} log", "DEBUG");
         log.info("Hi I'm {} log", "INFO");
         log.warn("Hi I'm {} log", "WARN");
         log.error("Hi I'm {} log", "ERROR");
    }
}
 
 

댓글