1+ <configuration >
2+
3+ <!-- =========================
4+ 공통 설정
5+ ========================= -->
6+ <springProperty scope =" context"
7+ name =" APP_NAME"
8+ source =" spring.application.name"
9+ defaultValue =" waitfair" />
10+
11+ <!-- =========================
12+ LOCAL / DEV
13+ - Spring Boot 기본 콘솔 로그 그대로
14+ - 파일로만 rolling
15+ ========================= -->
16+ <springProfile name =" local,dev" >
17+
18+ <!-- Spring Boot 기본 console appender 그대로 사용 -->
19+ <include resource =" org/springframework/boot/logging/logback/defaults.xml" />
20+ <include resource =" org/springframework/boot/logging/logback/console-appender.xml" />
21+
22+ <!-- 로컬 디버깅용 파일 로그 -->
23+ <appender name =" FILE"
24+ class =" ch.qos.logback.core.rolling.RollingFileAppender" >
25+ <file >logs/dev.log</file >
26+ <rollingPolicy class =" ch.qos.logback.core.rolling.TimeBasedRollingPolicy" >
27+ <fileNamePattern >logs/dev.%d{yyyy-MM-dd}.log</fileNamePattern >
28+ <maxHistory >7</maxHistory >
29+ </rollingPolicy >
30+ <encoder >
31+ <pattern >
32+ %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{36} - %msg%n
33+ </pattern >
34+ </encoder >
35+ </appender >
36+
37+ <root level =" INFO" >
38+ <appender-ref ref =" CONSOLE" />
39+ <appender-ref ref =" FILE" />
40+ </root >
41+ </springProfile >
42+
43+ <!-- =========================
44+ PERF / PROD
45+ - JSON stdout only
46+ ========================= -->
47+ <springProfile name =" perf,prod" >
48+
49+ <appender name =" JSON_CONSOLE"
50+ class =" ch.qos.logback.core.ConsoleAppender" >
51+ <encoder class =" net.logstash.logback.encoder.LogstashEncoder" >
52+ <!-- 고정 필드 -->
53+ <customFields >
54+ {"app":"${APP_NAME}"}
55+ </customFields >
56+
57+ <!-- MDC에서 가져올 필드 -->
58+ <includeMdcKeyName >requestId</includeMdcKeyName >
59+ <includeMdcKeyName >userId</includeMdcKeyName >
60+ <includeMdcKeyName >eventId</includeMdcKeyName >
61+ <includeMdcKeyName >seatId</includeMdcKeyName >
62+ <includeMdcKeyName >orderId</includeMdcKeyName >
63+ </encoder >
64+ </appender >
65+
66+ <!-- 불필요한 로그 줄이기 -->
67+ <logger name =" org.hibernate.SQL" level =" WARN" />
68+ <logger name =" org.hibernate.orm.jdbc.bind" level =" WARN" />
69+ <logger name =" org.springframework.web" level =" INFO" />
70+
71+ <root level =" INFO" >
72+ <appender-ref ref =" JSON_CONSOLE" />
73+ </root >
74+ </springProfile >
75+
76+ </configuration >
0 commit comments