11<?xml version =" 1.0" encoding =" UTF-8" ?>
22<configuration >
3+
34 <include resource =" org/springframework/boot/logging/logback/defaults.xml" />
45
5- <!-- 일반 콘솔 패턴 (로컬 개발용 - 읽기 쉬움) -->
6- <property name =" CONSOLE_LOG_PATTERN"
7- value =" %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [traceId=%X{traceId:-}] [jobId=%X{jobId:-}] [userId=%X{userId:-}] %-5level %logger{36} - %msg%n" />
6+ <!-- ================= LOCAL (가독성 로그) ================= -->
87
9- <!-- JSON 패턴 (운영용 - Loki 파싱) -->
10- <property name =" JSON_LOG_PATTERN"
11- value =' {"timestamp":"%d{yyyy-MM-dd HH:mm:ss.SSS}","thread":"%thread","traceId":"%X{traceId:-}","jobId":"%X{jobId:-}","userId":"%X{userId:-}","level":"%level","logger":"%logger{36}","message":"%msg"}%n' />
8+ <property name =" CONSOLE_LOG_PATTERN"
9+ value =" %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] [traceId=%X{traceId:-}] [jobId=%X{jobId:-}] [userId=%X{userId:-}] %-5level %logger{36} - %msg%n%ex" />
1210
13- <!-- 일반 콘솔 Appender (로컬용) -->
1411 <appender name =" CONSOLE" class =" ch.qos.logback.core.ConsoleAppender" >
1512 <encoder >
1613 <pattern >${CONSOLE_LOG_PATTERN}</pattern >
1714 <charset >UTF-8</charset >
1815 </encoder >
1916 </appender >
2017
21- <!-- JSON 콘솔 Appender (운영용) -->
22- <appender name =" CONSOLE_JSON" class =" ch.qos.logback.core.ConsoleAppender" >
23- <encoder >
24- <pattern >${JSON_LOG_PATTERN}</pattern >
25- <charset >UTF-8</charset >
18+ <!-- ================= JSON 로그 (운영용) ================= -->
19+
20+ <appender name =" JSON_CONSOLE" class =" ch.qos.logback.core.ConsoleAppender" >
21+ <encoder class =" net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder" >
22+
23+ <providers >
24+
25+ <!-- timestamp -->
26+ <timestamp >
27+ <fieldName >timestamp</fieldName >
28+ <pattern >yyyy-MM-dd HH:mm:ss.SSS</pattern >
29+ </timestamp >
30+
31+ <!-- 기본 필드 -->
32+ <threadName fieldName =" thread" />
33+ <logLevel fieldName =" level" />
34+ <loggerName fieldName =" logger" />
35+
36+ <!-- message -->
37+ <message />
38+
39+ <!-- MDC -->
40+ <mdc />
41+
42+ <!-- stacktrace -->
43+ <stackTrace >
44+ <fieldName >stacktrace</fieldName >
45+ </stackTrace >
46+
47+ </providers >
48+
2649 </encoder >
2750 </appender >
2851
29- <!-- 로컬: 일반 포맷 (읽기 쉬움) -->
52+ <!-- ================= PROFILE ================= -->
53+
54+ <!-- 로컬 -->
3055 <springProfile name =" local" >
3156 <root level =" INFO" >
3257 <appender-ref ref =" CONSOLE" />
3358 </root >
3459 </springProfile >
3560
36- <!-- 운영: JSON 포맷 (Loki 파싱용) -->
61+ <!-- dev / prod -->
3762 <springProfile name =" dev,prod" >
3863 <root level =" INFO" >
39- <appender-ref ref =" CONSOLE_JSON " />
64+ <appender-ref ref =" JSON_CONSOLE " />
4065 </root >
4166 </springProfile >
4267
43- <!-- 패키지별 로그 레벨 -->
68+ <!-- ================= LOGGER LEVEL ================= -->
69+
4470 <logger name =" sopt.comfit" level =" DEBUG" />
4571 <logger name =" sopt.comfit.report" level =" DEBUG" />
4672 <logger name =" org.springframework" level =" WARN" />
4773 <logger name =" org.hibernate" level =" WARN" />
74+
4875</configuration >
0 commit comments