ANSI 컬러 기능에 대한 spring-boot 로그백을 설정하려면 어떻게 해야 합니까?
윈도우에서 실행 중인 스프링 부트 응용 프로그램이 있습니다.윈도우에서 컬러 터미널 출력을 활성화하기 위한 프로젝트에 jansi(v1.8) 의존성을 추가했습니다.
spring-boot에서 제공되는 logback 설정을 포함합니다.즉, logback.xml에 다음 행을 추가합니다.
<include resource="org/springframework/boot/logging/logback/base.xml" />
logback.xml에서 무엇을 설정해야 할지 명확하지 않아 spring-boot에 의해 제공되는 base.xml에 따라 로그문이 색칠됩니다.죄송합니다. 정말 바보같은 질문이라면 로그백은 처음입니다.
감사합니다!
이는 Logback 매뉴얼의 컬러링 섹션에 설명되어 있습니다.
위에서 설명한 바와 같이 괄호별로 그룹화하면 서브패턴을 색칠할 수 있습니다.버전 1.0.5에서 PatternLayout은 "%black", "%red", "%green", "%blue", "%blue", "%magenta", "%cyan", "%white", "%gray", "%boldRed", "%boldGreen", "%BoldBoldCy" 및 "%BoldCyan"을 인식합니다.이러한 변환 워드는 서브 패턴을 포함하는 것을 목적으로 합니다.컬러링 워드로 둘러싸인 서브 패턴은 지정된 색상으로 출력됩니다.
또한 변환 단어 사용 방법을 보여주는 샘플 구성 파일도 있습니다.
<configuration debug="true">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- On Windows machines setting withJansi to true enables ANSI
color code interpretation by the Jansi library. This requires
org.fusesource.jansi:jansi:1.8 on the class path. Note that
Unix-based operating systems such as Linux and Mac OS X
support ANSI color codes by default. -->
<withJansi>true</withJansi>
<encoder>
<pattern>[%thread] %highlight(%-5level) %cyan(%logger{15}) - %msg %n</pattern>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>
</configuration>
이에 대한 지원이 스프링 부트로 추가되었습니다.
셋팅 완료
spring.output.ansi.enabled=always
다음으로 사용할 수 있는 설정 예를 나타냅니다.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="CONSOLE_LOG_PATTERN"
value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%t]){faint} %clr(%-40.40logger{39}.%M){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<!--<property name="CONSOLE_LOG_PATTERN" value="%d %p [%c{1}] - %m%n"/>-->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<appender name="ROLLING_APPENDER"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<append>true</append>
<!--<file>C:/tmp/var/demo/demo-app.log</file>-->
<!--<file>/var/log/mds/demo-app.log</file>-->
<file>${LOG_FOLDER}/demo-app.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>
${LOG_FOLDER}/demo-app.log.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>
<!--<fileNamePattern>
C:/tmp/var/demo-app.log.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>-->
<maxFileSize>100MB</maxFileSize>
<maxHistory>20</maxHistory>
<totalSizeCap>1000MB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
<logger name="com.hsbc.app.demo" additivity="false" level="debug">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ROLLING_APPENDER"/>
</logger>
<logger name="org.springframework" level="INFO"/>
<root level="info">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="ROLLING_APPENDER"/>
</root>
</configuration>
언급URL : https://stackoverflow.com/questions/27843562/how-to-configure-logback-in-spring-boot-for-ansi-color-feature
'programing' 카테고리의 다른 글
Tomcat으로 스프링 부트 배포 (0) | 2023.04.01 |
---|---|
워드프레스 페이지 내용은 어떻게 표시합니까? (0) | 2023.04.01 |
jQuery ajax와 ES6의 약속 (0) | 2023.04.01 |
Next.js React 앱에서 창이 정의되지 않았습니다. (0) | 2023.04.01 |
데이터 소스를 자동 구성하지 못했습니다. 'spring.datasource.url'이 지정되지 않았습니다. (0) | 2023.04.01 |