[로그 기능 추가] HttpLoggingFilter를 구현하여 HTTP 요청 및 응답 로깅 기능을 추가하고, MemberController에서 회원 등록 API에 LogExecution 어노테이션을 적용하여 실행 로그를 기록하도록 수정

This commit is contained in:
sohot8653
2025-08-15 00:53:17 +09:00
parent baab0352d5
commit 0f1c5443ea
7 changed files with 387 additions and 86 deletions

View File

@@ -28,6 +28,8 @@ src/main/java/com/bio/bio_backend/
│ ├── config/ # 설정 클래스
│ ├── security/ # 보안 설정
│ ├── exception/ # 예외 처리
│ ├── aop/ # AOP 로깅
│ ├── filter/ # HTTP 로깅 필터
│ └── utils/ # 유틸리티
└── BioBackendApplication.java
```
@@ -195,3 +197,54 @@ throw new ApiException(ApiResponseCode.USER_ID_DUPLICATE);
- **오류 코드**: `ApiResponseCode` enum에 모든 오류 정의
- **예외 클래스**: `ApiException`으로 비즈니스 로직 예외 처리
- **자동 처리**: `GlobalExceptionHandler`가 일관된 응답 형태로 변환
### 6. 로깅 시스템
#### @LogExecution 어노테이션 사용법
**메서드 실행 로깅을 위한 필수 어노테이션입니다.**
##### 기본 사용법
```java
@LogExecution("회원 등록")
@PostMapping("/register")
public ResponseEntity<ApiResponseDto<CreateMemberResponseDto>> createMember(@RequestBody CreateMemberRequestDto requestDto) {
// 메서드 실행 시 자동으로 로그 출력
}
```
##### 로그 출력 예시
**메서드 시작 시:**
```
[START] 회원 등록 | 호출경로: MemberController.createMember | 사용자: 고명빈(kmbin92)
```
**메서드 성공 시:**
```
[SUCCESS] 회원 등록 | 호출경로: MemberController.createMember | 사용자: 고명빈(kmbin92) | 시간: 200ms
```
**메서드 실패 시:**
```
[FAILED] 회원 등록 | 호출경로: MemberController.createMember | 사용자: 고명빈(kmbin92) | 시간: 23ms | 오류: 이미 존재하는 사용자 ID입니다
```
##### 어노테이션 설정
```java
@LogExecution("사용자 정보 조회")
public UserDto getUserInfo() { }
@LogExecution("주문 처리")
public OrderDto processOrder() { }
```
##### 로깅 시스템 구성
1. **MethodExecutionLoggingAspect**: 메서드 실행 로깅 (AOP)
2. **HttpLoggingFilter**: HTTP 요청/응답 로깅 (필터)
3. **logback-spring.xml**: 로그 파일 관리 및 설정
**중요**: `@LogExecution` 어노테이션이 없으면 메서드 실행 로그가 출력되지 않습니다