>백엔드 개발 >Golang >GoLang에서 MDC와 유사한 로깅을 달성하는 방법은 무엇입니까?

GoLang에서 MDC와 유사한 로깅을 달성하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-10-27 22:42:021147검색

How to Achieve MDC-Like Logging in GoLang?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.