Zap을 사용하여 net/http에 대한 사용자 정의 로깅
사용자 정의 형식으로 net/http의 오류를 로깅하려면 자체 로깅 메커니즘을 구현해야 합니다. net/http 패키지는 사용자 정의 로거를 지정할 수 있도록 ErrorLog 필드가 포함된 서버 구조체를 제공합니다.
사용자 정의 로거 구현
기본 로거를 교체하려면 , 사용자 정의 구현 생성:
type AppLogger struct { log *zap.SugaredLogger } func (l *AppLogger) Error(message string, keyAndValues ...interface{}) { l.log.Errorw(message, keyAndValues...) }
다음과 통합 net/http
io.Writer를 구현하고 사용자 정의 로거에 위임하는 유형을 생성합니다.
type serverJsonWriter struct { *zap.Logger } func (w serverJsonWriter) Write(p []byte) (n int, err error) { w.Error(string(p)) return len(p), nil }
마지막으로 새 http.Server를 인스턴스화하고 ErrorLog 필드를 다음으로 설정합니다. 맞춤형 작가:
server := &http.Server{ Addr: addr, Handler: handler, ErrorLog: logger.New(&serverJsonWriter{l}, "", 0), }
내가 당신의 Zap 로거는 어디에 있나요? 인스턴스.
zap io.Writer 검색
로거 인스턴스에서 logger.Writer()를 호출하여 zap io.Writer를 검색할 수 있습니다.
zapWriter := logger.Writer()
추가 참고
위 내용은 Zap을 사용하여 net/http 오류에 대한 사용자 정의 로깅을 구현하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!