Spring Boot Logback 콘솔 console 색상을 예쁘게 출력하는 방법

JooKit 주킷 2024. 2. 2. 22:37
목차 접기
728x90
반응형

 
 

 
 
 
 
대충 넘어 갔던 부분들을 조금 더 찾아보고 이해하면서 프로젝트를 만들어보는 시간을 갖고 있습니다.
 
그러던 중에 콘솔에 찍히는 로그들의 시간과 메시지 패턴이 마음에 들지 않더군요.
 
그래서 또 열심히 구글링을 시작했습니다.
 
제일 마음에 드는 방법을 찾았고, 시도해보고 안되서 다른 방법을 시도해 보기를 여러 차례 반복했죠.
 

아니, 이게 나만 안된다고????????;;

 
 

그러던 중, 프로젝트에서 콘솔 기본 설정값에 문제가 있지는 않을까 싶어서 해결 방법에 대한 접근 방향을 틀었죠.
 
다행히 이유를 알아냈고, 방법도 찾았습니다.
 
혹시라도 저같이 '왜 이토록 안되는 것일까..' 라고 생각하시는 분들이 계실까 싶어 기록해 놓으려 합니다.
 
 
 
 
 
 
 
 

이랬던 콘솔을 

 
 
 
 
 
 
 
 

이렇게 알록달록하게 바꾸는 방법을 바로 공유드릴게요👍

 
 
 
 
 

개발하면서 개발환경이나 기기를 마음에 들게 구성하면 왠지 더 기분이 좋은 그 느낌.

 
 
 
 
 
 
 
 

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


    <!-- 로그 패턴에 색상 적용 %clr(pattern){color} -->
    <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" />



    <!-- log 변수 값 설정 -->
    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){green} %clr(${LOG_LEVEL_PATTERN:-%7p}){cyan}  %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:-default}" />



    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${CONSOLE_LOG_PATTERN}</pattern>
            <charset>${CONSOLE_LOG_CHARSET}</charset>
        </encoder>
    </appender>



    <root level="INFO">
        <appender-ref ref="STDOUT" />
    </root>
</configuration>

 
 
커스텀 로그 패턴의 컨버터를 먼저 설정해 줍니다.
conversionWord="clr"가  logback color를 지정할 수 있도록 해줍니다.
conversionWord="clr"은 Logback의 커스텀 로그 패턴을 정의할 때 사용하는 것으로,
원하는 이름으로 정의하여 사용할 수 있습니다.
 

 
 
 

 

부연 설명

 

WhitespaceThrowableProxyConverter

 
 이 컨버터는 예외 로그를 출력할 때 예외 클래스 이름과 예외 메시지를 보여주는 기본 형식을 사용합니다.
예외 스택 트레이스는 공백 문자로 구분되어 출력됩니다.

 
 
 
 

ExtenedWhitespaceThrowableProxyConverter

 
WhitespaceThrowableProxyConverter와 유사하지만 스택 트레이스 출력에서 추가 정보를 제공합니다.
예를 들어, 예외가 발생한 파일의 이름과 라인 번호를 출력합니다.

 
 
 
 
 
 
 
 

이제, 이렇게 저렇게 여러 방법으로 Logback console color를

변경하려 했지만 실패했던 이유를 말씀드려볼게요.

 
 
 
 
 
 
 
 

 

그 이유는 바로.. 
이클립스 '환경 설정'에서 Ansi Console에 Plugin enabled 탭이 비활성화되어 있었기에
아무리 외부 라이브러리로 콘솔 환경에 변화를 주려고해도 적용되지 않았던 것이지요.
 
Plugin enabled 탭에 체크를 해주고 프로젝트를 재 구동시키면 콘솔에 폰트 색상과 정리된 패턴의 로그를 확인할 수 있습니다. 
 
 
 
 
지원되는 색상은 7가지로 blue, cyan, faint, green, magenta, red, yellow 입니다.
각 패턴이 끝나는 중간 중간 {blue}, {cyan}, {green} 등 폰트 색상이 지정된 부분에 다른 색상을 지정해줄 수 있습니다.
 
 
 
 
logback.xml 파일을 아직 만들어 본 적이 없으신 분들은
src/main/resources 폴더 하위에 logback.xml 파일을 생성한 후 
위에 공유드린 소스를 적용하시고 테스트 해보시면 좋을 것 같습니다. 
 
 
 

 
 
 
 
 
 
 
 
 

728x90
반응형
LIST