본문 바로가기
Dev/Spring Boot

[스프링 부트 개념과 활용] 로깅

by dev_jsk 2020. 8. 24.
728x90
반응형

기본 로거

1. Spring 5 로거 관련 변경 사항

https://docs.spring.io/spring/docs/5.0.0.RC3/spring-framework-reference/overview.html#overview-logging

 

Overview of Spring Framework

The Spring Framework is a Java platform that provides comprehensive infrastructure support for developing Java applications. Spring handles the infrastructure so you can focus on your application. Spring enables you to build applications from "plain old Ja

docs.spring.io

Spring-JCL 이라는 모듈을 만들어 JCL Code 를 컴파일 시점에 SLF4j , Log4j2 로 변경할 수 있는 기능

Spring-JCL 모듈
JCL(Jakarta Common Logging) Code 를 Compile 시점에 SLF4j 나 Log4j2 로 변경해준다.
Commons Logging(Spring 내장) -> SLF4j or Log4j2 -> Logback

 

2. 로거 설정

application.properties 에 관련 설정을 할 수 있다.

  • 컬러 출력 : spring.output.ansi.enabled = always
  • 파일 출력 : logging.file = 파일명 또는 logging.path = 경로
  • 파일 최대 용량 : logging.file.max-size = 용량
  • 로그 레벨 : logging.level.<package location> = level

패키지 별 로그 레벨 지정 및 로그 사용 예시

// application.properties
logging.level.me.jsk=DEBUG
// SampleRunner.java
@Component
public class SampleRunner implements ApplicationRunner {
    // SLF4j
    private Logger logger = LoggerFactory.getLogger(SampleRunner.class);

    @Autowired
    private String hello;

    @Autowired
    private JinseoProperties jinseoProperties;

    @Override
    public void run(ApplicationArguments args) throws Exception {
        logger.info("===========");
        logger.info(hello);
        logger.info(jinseoProperties.getName());
        logger.info(jinseoProperties.getFullName());
        logger.info("===========");
    }
}
// Result
2020-08-24 15:13:00.933  INFO 17344 --- [main] me.jsk.SampleRunner: ===========
2020-08-24 15:13:00.934  INFO 17344 --- [main] me.jsk.SampleRunner: hello
2020-08-24 15:13:00.949  INFO 17344 --- [main] me.jsk.SampleRunner: Jinseo prod
2020-08-24 15:13:00.950  INFO 17344 --- [main] me.jsk.SampleRunner: proddb fullname
2020-08-24 15:13:00.950  INFO 17344 --- [main] me.jsk.SampleRunner: ===========

 

로거 커스터마이징

1. 커스텀 로그 설정 파일 사용하기

resources/<logger name>-spring.xml 파일을 생성하여 사용할 수 있다.

기본적으로 사용하는 Logback 의 예시

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/base.xml"/>
    <logger name="me.jsk" level="DEBUG"/>
</configuration>

 

2. 로거 변경하기

pom.xml 내 의존성 정보를 수정하여 변경

// pom.xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
	</exclusions>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
728x90
반응형

댓글