GoLang에서 MDC 로깅 달성
Java에서 MDC(Mapped Diagnostic Context)로 로깅하면 서버 로그에 UUID를 추가하여 동시 요청을 추적할 수 있습니다. . Go에서는 MDC가 Java에서 의존하는 스레드 로컬 저장소를 사용할 수 없습니다.
GoLang의 솔루션: Threading Context
Go에서 MDC와 유사한 로그인을 활성화하려면 애플리케이션 스택 전체에 컨텍스트를 스레드하는 데 필요합니다. 이 접근 방식은 Go 라이브러리에서 인기를 얻었습니다.
일반적인 구현에는 미들웨어 패키지를 사용하여 웹 요청 컨텍스트에 요청 ID를 추가하는 것이 포함됩니다. 이를 통해 ctx.Value("requestId")를 사용하여 ID를 검색하고 이를 로깅에 사용할 수 있습니다.
예를 들어 사용자 정의 로거 함수를 생성할 수 있습니다.
<code class="go">func logStuff(ctx context.Context, msg string) { log.Println(ctx.Value("requestId"), msg) // Call the standard library logger }</code>
이 접근 방식은 유연성을 제공하며 필요에 따라 요청 ID를 처리할 수 있습니다. Java의 MDC와 직접적으로 동일하지는 않지만 Go에서 동시 요청을 추적하기 위한 실행 가능한 솔루션을 제공합니다.
위 내용은 GoLang에서 MDC와 유사한 로깅을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!