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"