8.1 라이브러리 추가
Gradle:
dependencies {
implementation 'a306:dependency-logger-starter:1.0.3'
}Maven:
<dependency>
<groupId>a306</groupId>
<artifactId>dependency-logger-starter</artifactId>
<version>1.0.3</version>
</dependency>8.2 최소 설정
application.yml:
dependency:
logger:
api-key: "your-api-key-here"이것만 설정하면 나머지는 자동으로 활성화됩니다.
8.3 어노테이션 사용
8.3.1 로깅 제외
클래스 전체 제외:
@NoLogging
@RestController
public class HealthController {
// 이 클래스의 모든 메서드는 로깅 안됨
}특정 메서드만 제외:
@RestController
public class UserController {
@NoLogging
public void healthCheck() {
// 이 메서드만 로깅 안됨
}
}8.3.2 민감 정보 보호
@RestController
public class AuthController {
public TokenResponse login(
String username,
@Sensitive String password // ← "***"로 마스킹
) {
// ...
}
public void uploadFile(
Long userId,
@ExcludeValue byte[] fileData // ← 로그에서 완전히 제외
) {
// ...
}
}8.3.3 명시적 로깅
public class MyUtil { // 일반 클래스
@LogMethodExecution // 이 메서드만 로깅
public void criticalOperation() {
// ...
}
}8.4 전체 설정 옵션
spring:
application:
name: my-service
dependency:
logger:
# 필수
api-key: "your-api-key"
# Collector 서버 (선택)
collector:
url: "http://collector:8081"
# 전송 활성화 (선택, 기본: true)
sender:
enabled: true
# TraceID 추적 (선택, 기본: true)
trace:
enabled: true
# 메서드 로깅 (선택, 기본: true)
method-execution:
enabled: true
# Exception Handler 로깅 (선택, 기본: true)
exception-handler:
enabled: true
# 스택트레이스 (선택, 기본: -1)
stacktrace:
max-lines: -1 # -1: 전체, 0: 없음, N: N줄
# 프론트엔드 로그 (선택, 기본: false)
frontend:
enabled: false
log-path: "./logs/fe/app.log"