[boot] 콘솔 로그 변경 By starseat 2021-11-17 09:40:39 java/spring Post Tags Spring Boot 로 작업시 로그를 변경할 일이 생겼다. 로그 변경이 필요할 경우 다음과 같이 자신만의 스타일로 변경하면 된다. `properties` 보다는 `yaml` 로 작성하는 것이 편하여 application 파일의 확장자를 변경하여 진행하였다. `application.yml` 에 logging.pattern.console 를 추가한다. # 로그 설정 예 ```yaml # application.yml 에서 콘솔 로그 작성 예 logging: pattern: console: "%d{yyyy-MM-dd HH:mi:ss.SSS}|%-5level|%F:%L|$C|%M|%logger{0}|%msg%n" ``` # 로그 옵션(패턴) | 요소 | 패턴 | | --- | --- | | %Logger{length} | Logger name을 축약할 수 있다. {length}는 최대 자리 수, ex)logger{35} | | %-5level | 로그 레벨, -5는 출력의 고정폭 값(5글자) | | %msg | 로그 메시지 (=%message) | | ${PID:-} | 프로세스 아이디 | | %d | 로그 기록시간 | | %p | 로깅 레벨 | | %F | 로깅이 발생한 프로그램 파일명 | | %M | 로깅일 발생한 메소드의 명 | | %l | 로깅이 발생한 호출지의 정보 | | %L | 로깅이 발생한 호출지의 라인 수 | | %thread | 현재 Thread 명 | | %t | 로깅이 발생한 Thread 명 | | %c | 로깅이 발생한 카테고리 | | %C | 로깅이 발생한 클래스 명 | | %m | 로그 메시지 | | %n | 줄바꿈(new line) | | %% | %를 출력 | | %r | 애플리케이션 시작 이후부터 로깅이 발생한 시점까지의 시간(ms) | # 로그 색 지정 위와 같이 로그를 설정하면 개발시 콘솔 로그의 색이 없어 구분하기가 힘들어 진다. (로그 레벨별 구분은 가능하다.) - 일반 로그 ![boot-logging-1.png](/uploads/_temp/20211117/ffd3e97bd67908d3bfa2548c3290cf21.png) - 로그 레벨 ![boot-logging-2.png](/uploads/_temp/20211117/d0bad435b243a4e97051789e937a384b.png) 로그에 색을 적용하는 방법은 다음과 같다. ``` # application.yml spring: output: ansi: enabled: always # 이부분을 추가해준다. (always|detect|never) logging: pattern: console: "%d{yyyy-MM-dd HH:mm:ss.SSS}|%clr(%-5level)|%clr(%F){cyan}:%L|%clr(%logger{0}){blue}|%clr(%M){magenta}|%msg%n" level: root: info # 로그레벨 지정 ``` 먼저 `application.yml` 에서 `sping.output.ansi.enabled`을 추가해 주어야 한다. 그리고 pattern 에서 `%clr()` 을 추가해준다. 색을 지정해 주려면 `%clr(){color}` 을 해주어야 한다. ## 색 정보 * blue * cyan * faint * green * magenta * red * yellow ## 로그 레벨별 사용 색상 | 로그 레벨 | 색 | | ----- | --- | | FATAL | Red | | ERROR | Red | | WARN | Yellow | | INFO | Green | | DEBUG | Green | | TRACE | Green | 색을 지정하면 로그는 다음과 같이 보기 편하게 설정된다. ![boot-logging-3.png](/uploads/_temp/20211117/e2b50cd1515ce8e76377dd796580791b.png) # 출처 * [https://docs.spring.io/spring-boot/docs/2.1.13.RELEASE/reference/html/boot-features-logging.html](https://docs.spring.io/spring-boot/docs/2.1.13.RELEASE/reference/html/boot-features-logging.html) * [https://goddaehee.tistory.com/206](https://goddaehee.tistory.com/206) Previous Post [boot] 내장형 웹 서버를 네티에서 톰캣으로 전환 Next Post [java] java8 이상에서의 날짜 처리