[Spring Boot #11] 스프링 부트 로깅( Spring Boot Logging )
| 스프링 부트 로깅( Spring Boot Logging )
스프링 부트에서는 로깅 설정을 자동적으로 지원합니다. 다음과 같이 slf4j 로깅 파사드( 로깅 모듈을 추상화한 것 )를 통해 logback 을 기본적으로 지원하고 있죠.
@Component
public class AppRunner implements ApplicationRunner {
// slf4j 로깅 파사드를 통해 logback 로깅 모듈을 지원
private Logger logger = LoggerFactory.getLogger(AppRunner.class);
@Override
public void run(ApplicationArguments args) throws Exception {
logger.info("=============");
logger.info("This is Spring Boot App");
logger.info("=============");
}
}
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(Application.class);
application.setWebApplicationType(WebApplicationType.NONE);
application.run(args);
}
}
( ... 생략 ... )
2019-01-01 00:28:56.924 INFO 6200 --- [ main] com.tutorial.springboot.AppRunner : =============
2019-01-01 00:28:56.925 INFO 6200 --- [ main] com.tutorial.springboot.AppRunner : This is Spring Boot App
2019-01-01 00:28:56.925 INFO 6200 --- [ main] com.tutorial.springboot.AppRunner : =============
| application.properties를 통한 로깅 설정
application.properties를 통해 다음과 같이 로깅 설정을 할 수 있습니다.
# application.properties
# 콘솔 창에 출력되는 로깅 메세지를 색으로 구분해서 출력
spring.output.ansi.enabled=always
# 로그 메세지가 저장되는 로그 디렉터리
logging.path=logs
# logging.level.{패키지 경로}를 통해 로깅 레벨을 결정할 수 있슴
logging.level.com.tutorial.springboot=DEBUG
| 스프링 부트 로깅 커스터마이징( Spring Boot Logging Customizing )
스프링 부트에서는 기본적으로 logback 모듈을 제공합니다. 따라서 logback 모듈을 다음과 같이 xml 파일로 따로 설정 정보를 관리하면서 개발할 수 있습니다.
// logback-spring.xml
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<logger name="com.tutorial.springboot" level="DEBUG"/>
</configuration>
만일 logback을 사용하지 않고 다른 로깅 모듈로 바꾸고 싶을 때는 pom.xml에 다음과 같이 logback 모듈에 대한 의존성을 제거해야 합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
그 다음 log4j 같은 다른 로깅 모듈에 대한 의존성을 추가합니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
2019-01-01 00:46:24.890 INFO 12920 --- [ main] c.t.s.Application : Starting Application on USER-PC with PID 12920 (C:\Users\user\spring\springboottutorial\target\classes started by user in C:\Users\user\spring\springboottutorial)
2019-01-01 00:46:24.913 INFO 12920 --- [ main] c.t.s.Application : No active profile set, falling back to default profiles: default
2019-01-01 00:46:26.724 INFO 12920 --- [ main] c.t.s.Application
'Spring Framework > Spring boot #2' 카테고리의 다른 글
[Spring Boot #15] 스프링 웹 MVC : 인덱스 페이지와 파비콘 (0) | 2021.03.15 |
---|---|
[Spring Boot #14] 스프링 웹 MVC : 정적 리소스 지원 (0) | 2021.03.15 |
[Spring Boot #13] 스프링 웹 MVC : HttpMessageConverter, ViewResolver (0) | 2021.03.15 |
[Spring Boot #12] 스프링부트에서 테스트 작성하기( Spring Boot Test ) (0) | 2021.03.15 |
[Spring Boot #10] 스프링 부트 프로파일(Spring Boot Profile) (0) | 2021.03.15 |
[Spring Boot #9] 스프링 부트 외부 설정, 설정값 검증 (0) | 2021.03.15 |
[Spring Boot #8] 이벤트 리스너 및 웹 어플리케이션 타입 지정, 커맨드 인수 처리( Event Listener, Application Type, Command Arguments ) (0) | 2021.03.15 |
[Spring Boot #7] 스프링부트(Spring Boot) HTTPS 구축, HTTP2, 다중 커넥터 설정 (0) | 2021.03.15 |