Spring boot에서는 application.properties 또는 application.yml을 통해 logging을 할 수 있습니다.
1. Spring boot 기본 로깅
먼저, 다음과 같이 java 코드에 log를 넣습니다.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
private final Logger log = LoggerFactory.getLogger(this.getClass());
@RequestMapping("/")
public String home() {
log.debug("debug message");
log.info("info message");
log.warn("warn message");
log.error("error message");
return "";
}
}
Spring boot를 시작한 후, 웹 브라우저에서 URL에 접속(ex. http://localhost:8080/) 한 후, Console에서 log message를 확인하면 다음과 같이 표시됩니다.
2022-03-30 22:53:41.884 INFO 19712 --- [nio-8080-exec-1] com.example.demo.TestController : info message
2022-03-30 22:53:41.885 WARN 19712 --- [nio-8080-exec-1] com.example.demo.TestController : warn message
2022-03-30 22:53:41.885 ERROR 19712 --- [nio-8080-exec-1] com.example.demo.TestController : error message
자세히 보면 log 중 debug가 없다는 것을 알 수 있는데, 이는 default logging level이 info이기 때문입니다.
2. Spring boot logging level
application.properties에서 spring boot, hibernate, thymeleaf 등의 로그 수준을 정의할 수 있습니다. logging 수준을 설정하려면 다음과 같이 logging.level로 시작하는 속성을 추가하면 됩니다.
logging.level.org.springframework.web=ERROR
logging.level.com.howtodoinjava=DEBUG
또한 root logger는 logging.level.root를 사용하여 구성할 수 있습니다.
logging.level.root=DEBUG
위와 같이 application.properties에 코드를 추가하면 다음과 같이 console에 debug가 추가된 것을 확인할 수 있습니다.
2022-03-30 23:02:24.763 DEBUG 14136 --- [nio-8080-exec-4] com.example.demo.TestController : debug message
2022-03-30 23:02:24.763 INFO 14136 --- [nio-8080-exec-4] com.example.demo.TestController : info message
2022-03-30 23:02:24.763 WARN 14136 --- [nio-8080-exec-4] com.example.demo.TestController : warn message
2022-03-30 23:02:24.763 ERROR 14136 --- [nio-8080-exec-4] com.example.demo.TestController : error message
3. Spring boot logging patterns
logging pattern을 변경하려면 logging.pattern.console 및 logging.pattern.file 속성을 사용할 수 있는데 logging.pattern.console은 console에 표시되는 옵션이고, logging.pattern.file은 파일에 쓸 때 사용되는 옵션입니다.
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
logging.pattern.file=%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n
다시 로그를 확인해 보면 다음과 같이 표시됩니다.
2022-03-30 23:14:20 - debug message
2022-03-30 23:14:20 - info message
2022-03-30 23:14:20 - warn message
2022-03-30 23:14:20 - error message
4. Log output to file
로그를 파일에 출력하기 위해서는 다음과 같이 logging.file.name 또는 logging.file.path를 사용하면 됩니다.
logging.file.name=e:/spring.log
5. log에 Color 표시
Console에서 color를 지원하는 경우 spring.output.ansi.enable property를 통해 color를 표시할 수 있습니다.
지원되는 옵션은 다음과 같습니다.
- ALWAYS
- NEVER
- DETECT
Color 표시를 설정하면 log level에 따라 다음과 같이 표시됩니다.
- FATAL, ERROR - Red
- WARN - Yellow
- INFO, DEBUG, TRACE - Green
'웹 개발' 카테고리의 다른 글
Convert LocalDate to LocalDateTime (0) | 2022.04.03 |
---|---|
java code style (0) | 2022.04.03 |
java jdk 환경변수에 추가하는 방법 for windows 10 (0) | 2022.03.23 |
[jenkins] Spring boot + Maven + war 배포하는 방법 (0) | 2022.03.23 |
jenkins + svn 연동하는 방법 (0) | 2022.03.22 |