처음부터 차근차근

Logback : 로그 색상 수정 본문

Framework/Spring

Logback : 로그 색상 수정

_soyoung 2022. 6. 22. 15:42
반응형

logback 설정 파일이 적용된 로그를 봤더니

spring에서 기본적으로 적용됐던 로그 색상이 사라졌다.

 

로그의 색상을 수정하려면 아래와 같이 logback 설정 파일을 수정하면 된다.

1. conversion rule 추가

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
    ....생략....
</configuration>

 

2.  pattern 부분 수정

<pattern>%clr([%d{yyyyMMdd HH:mm:ss.SSS}]){magenta} %clr([%-5level]) [%thread] %clr(%logger){cyan} %msg%n</pattern>

 

그 결과

다시 색상이 알록달록하게 변했다.

 

 

원리 

spring-boot-버전.jar / org.springframework.boot / logging / logback 안에 있는 logback 설정 파일을 보면 원리를 알 수 있다.

 

default.xml

색상 변경을 하는 키워드 clr이 conversionRule 태그 안에 선언된 것을 볼 수 있다.

<?xml version="1.0" encoding="UTF-8"?>

<!--
Default logback configuration provided for import
-->

<included>
	<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" />
	<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" />
	<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" />

	<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
	<property name="CONSOLE_LOG_CHARSET" value="${CONSOLE_LOG_CHARSET:-${file.encoding:-UTF-8}}"/>
	<property name="FILE_LOG_PATTERN" value="${FILE_LOG_PATTERN:-%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
	<property name="FILE_LOG_CHARSET" value="${FILE_LOG_CHARSET:-${file.encoding:-UTF-8}}"/>

	<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
	<logger name="org.apache.catalina.util.LifecycleBase" level="ERROR"/>
	<logger name="org.apache.coyote.http11.Http11NioProtocol" level="WARN"/>
	<logger name="org.apache.sshd.common.util.SecurityUtils" level="WARN"/>
	<logger name="org.apache.tomcat.util.net.NioSelectorPool" level="WARN"/>
	<logger name="org.eclipse.jetty.util.component.AbstractLifeCycle" level="ERROR"/>
	<logger name="org.hibernate.validator.internal.util.Version" level="WARN"/>
	<logger name="org.springframework.boot.actuate.endpoint.jmx" level="WARN"/>
</included>

CONSOLE_LOG_PATTERN 부분을 보면 %clr 이 사용되는 것을 볼 수 있는데, 

%clr(LOG_DATEFORMAT_PATTERN){faint} 이런식으로 정의를 한다.

faint는 검정색을 의미하고, {} 괄호 안에 색상을 적으면 색상을 지정하는 것을 알 수 있다.

 

clr에서 지원되는 색상은

bluecyan, faint, greenmagentaredyellow 이다.

 

log level은 level마다 색상을 달리해야하는데(예를 들어 error는 빨간색, info는 파란색),

level에 해당되는 부분은 %clr(~)이런식으로 '{색상}'을 안붙이고 표기하면 level별로 색상이 변한다.

 

 

base.xml

base.xml은 default.xml을 include 한다.

<?xml version="1.0" encoding="UTF-8"?>

<!--
Base logback configuration provided for compatibility with Spring Boot 1.1
-->

<included>
	<include resource="org/springframework/boot/logging/logback/defaults.xml" />
	<property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/spring.log}"/>
	<include resource="org/springframework/boot/logging/logback/console-appender.xml" />
	<include resource="org/springframework/boot/logging/logback/file-appender.xml" />
	<root level="INFO">
		<appender-ref ref="CONSOLE" />
		<appender-ref ref="FILE" />
	</root>
</included>

 

 

 

참고 : https://oingdaddy.tistory.com/257

 

Logback 출력 로그 색상 변경하기 (with clr)

중요한 일은 아니지만 개발환경을 만드는 입장에서 어떻게 하면 조금 더 로그를 가독성이 좋게 보여줄 수 있을까 고민을 했고 출력 로그의 색상을 바꿔보기로 하였다. 바쁜 사람을 위해 결론부

oingdaddy.tistory.com

 

반응형

'Framework > Spring' 카테고리의 다른 글

Builder pattern과 @Builder  (0) 2022.07.29
스프링 이니셜라이즈를 이용한 스프링 부트 프로젝트 생성 방법  (0) 2022.07.12
@DeleteMapping과 @PutMapping  (1) 2022.05.24
Swagger  (0) 2022.05.06
Logback  (0) 2022.05.05
Comments