Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions apps/user-service/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,10 @@ dependencies {
// 비동기 로깅
implementation 'com.lmax:disruptor:3.4.4'

implementation "io.micrometer:micrometer-tracing-bridge-brave"
implementation "io.micrometer:micrometer-tracing"
implementation "org.springframework.boot:spring-boot-starter-actuator"

// Lombok
compileOnly 'org.projectlombok:lombok:1.18.30'
annotationProcessor 'org.projectlombok:lombok:1.18.30'
Expand Down

This file was deleted.

6 changes: 6 additions & 0 deletions apps/user-service/src/main/resources/application-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,3 +44,9 @@ mybatis:

logging:
config: classpath:log4j2-develop.yml

management:
tracing:
enabled: true
sampling:
probability: 1.0 # 100% 샘플링 (개발 환경에서만 권장)
120 changes: 108 additions & 12 deletions apps/user-service/src/main/resources/log4j2-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,46 +5,142 @@ Configuration:
properties:
property:
- name: "app-name"
value: "${env:APP_NAME:-user-service-app}"
value: "user-service"
- name: "log-path"
value: "./logs"
- name: "charset-UTF-8"
value: "UTF-8"
# DEBUG 환경용 콘솔 패턴 - 더 간단하고 가독성 좋게
- name: "console-layout-pattern"
value: "%highlight{[%-5level]} [%X{traceId}] [%X{spanId}] %d{HH:mm:ss} [%t] %n %logger{20} - %msg%n%n "
# 파일용 패턴
- name: "file-layout-pattern"
value: "[%X{traceId}] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"
# 개발 환경용 로그 파일들
- name: "dev-log"
value: ${log-path}/develop/app.log
- name: "error-log"
value: ${log-path}/develop/error.log

Appenders:
# 콘솔 appender
# 콘솔 출력 - 개발 시 주요 출력
Console:
name: console-appender
target: SYSTEM_OUT
PatternLayout:
pattern: "[%-5level] [%X{traceId}] %d{MM-dd HH:mm:ss} [%t] %msg%n"
pattern: ${console-layout-pattern}
disableAnsi: false

# Tjahzi Loki Appender (올바른 문법)
# Loki Appender - 개발환경 모니터링용
Loki:
name: loki-appender
host: localhost
port: 3100
PatternLayout:
pattern: "[%-5level] [%X{traceId}] %d{MM-dd HH:mm:ss} [%t] %msg%n"
JsonLayout:
compact: true
eventEol: true
includeStacktrace: true
KeyValuePair:
- key: "app"
value: "${app-name}"
- key: "env"
value: "develop"
Label:
- name: "app"
value: "${app-name}" # 고정 값
- name: "service"
value: "user-service" # 고정 값
value: "${app-name}"
- name: "env"
value: "develop"
- name: "traceId"
value: "${ctx:traceId}" # MDC에서 가져올 값만 넣음
value: "${ctx:traceId}"
- name: "spanId"
value: "${ctx:spanId}"
- name: "executionType"
value: "${ctx:executionType:-application}"
- name: "sourceId"
value: "${ctx:sourceId}"
- name: "runId"
value: "${ctx:runId}"

# 개발용 일반 로그 파일
File:
- name: file-dev-appender
fileName: ${dev-log}
PatternLayout:
pattern: ${file-layout-pattern}
- name: file-error-appender
fileName: ${error-log}
PatternLayout:
pattern: ${file-layout-pattern}
ThresholdFilter:
level: ERROR

Loggers:
# Root 로거 - 개발환경에서는 기본적으로 INFO 레벨
Root:
level: INFO
AppenderRef:
- ref: console-appender

Logger:
# 애플리케이션 로그만 Loki로 전송 (additivity 문법 수정)
# 애플리케이션 로그 - 개발 시 모든 레벨 + Loki 전송
- name: site.icebang
additivity: false
level: DEBUG
AppenderRef:
- ref: console-appender
- ref: loki-appender
- ref: file-dev-appender
- ref: file-error-appender

# Spring Framework - 개발 시 필요한 정보만
- name: org.springframework
additivity: false
level: INFO
AppenderRef:
- ref: console-appender
- ref: file-dev-appender

# Spring Security - 인증 디버깅용
- name: org.springframework.security
level: DEBUG
additivity: false
AppenderRef:
- ref: console-appender
- ref: file-dev-appender
- ref: loki-appender

# 웹 요청 로그 - API 개발 시 유용
- name: org.springframework.web
level: DEBUG
additivity: false
AppenderRef:
- ref: console-appender
- ref: file-dev-appender
- ref: loki-appender

# 트랜잭션 로그 - DB 작업 디버깅
- name: org.springframework.transaction
level: DEBUG
additivity: false
AppenderRef:
- ref: console-appender
- ref: file-dev-appender
- ref: loki-appender

# HikariCP 로그 비활성화
- name: com.zaxxer.hikari
level: OFF
level: OFF

# SQL 로그 - 개발 시 쿼리 확인용 (필요시 활성화)
- name: org.hibernate.SQL
level: DEBUG
additivity: false
AppenderRef:
- ref: console-appender

# 파라미터 바인딩 로그 (필요시 활성화)
- name: org.hibernate.type.descriptor.sql.BasicBinder
level: TRACE
additivity: false
AppenderRef:
- ref: console-appender
2 changes: 1 addition & 1 deletion apps/user-service/src/main/resources/log4j2-production.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Configuration:
name: develop
name: production

properties:
property:
Expand Down
Loading