net/http의 사용자 정의 로그인
net/http 패키지는 Go 애플리케이션에서 HTTP 요청 및 응답을 처리하는 편리한 방법을 제공합니다. 그러나 오류 보고를 위해 자체 기본 로거를 사용합니다. 사용자 정의된 오류 로깅의 경우 net/http의 서버 구조에 대한 사용자 정의 로거를 지정할 수 있습니다. 이 문서에서는 이를 달성하는 방법을 보여줍니다.
사용자 정의 로거 구현
내부적으로 Zap 로거를 사용하는 AppLogger라는 사용자 정의 로거 구현이 있다고 가정합니다. 이 사용자 정의 로거를 net/http와 통합하려면 io.Writer 인터페이스를 구현하고 AppLogger를 사용하여 오류를 기록하는 새로운 유형을 생성할 수 있습니다.
type serverJsonWriter struct { io.Writer } func (w serverJsonWriter) Write(p []byte) (n int, err error) { // Here you would implement custom logging logic using your AppLogger // ... return len(p), nil }
서버 구조체 채우기
서버 구조체와 함께 사용자 정의 로거를 사용하려면 ErrorLog 필드를 인스턴스로 설정하기만 하면 됩니다. serverJsonWriter 유형입니다. 또한 log.Logger를 초기화하기 위해 AppLogger가 래핑하는 zap logger를 사용해야 합니다.
logger, err := cfg.Build() if err != nil { // Handle error } server := &http.Server{ Addr: addr, Handler: handler, ErrorLog: logger.New(&serverJsonWriter{}, "", 0), }
이 방법을 구현하면 net/http 오류가 사용자 지정 사양에 따라 기록되므로 더 많은 작업이 가능합니다. 애플리케이션의 로깅 및 오류 보고를 제어합니다.
위 내용은 Go에서 net/http에 대한 사용자 정의 로깅을 어떻게 구현할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!