고급편?
개념을 배우고 로그 추적기_점진적으로 발전
자바 및 스프링에 대한 이해도를 상승
이번에는 원시적으로 로그 추적기를 만들어 보고
쓰레드 로컬이란 개념을 배워본다음 쓰레드 로컬을 이용해서 발전시켜 보겠습니다.
이런 로그 추적기를 만들어 보겠습니다.
우선 프로토타입 코드 개발입니다.
핵심 코드는 begin,end,exception이 있습니다.
begin으로 로그 추적을 시작하고
end, exception을 이용해 해당 계층의 로그 출력을 끝마칩니다.
package hello.advanced.app.v1;
import hello.advanced.trace.TraceStatus;
import hello.advanced.trace.hellotrace.HelloTraceV1;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequiredArgsConstructor
public class OrderControllerV1 {
private final OrderServiceV1 orderService;
private final HelloTraceV1 trace;
@GetMapping("/v1/request")
public String request(String itemId) {
TraceStatus status = null;
try {
status = trace.begin("OrderController.request()");
orderService.orderItem(itemId);
trace.end(status);
return "ok";
} catch (Exception e) {
trace.exception(status, e);
throw e; //예외를 꼭 다시 던져주어야 한다.
}
}
}