사용자 정의 작성기로 net/http 로그인 사용자 정의
net/http의 오류를 사용자 정의 형식으로 기록하려면 http.Server.ErrorLog 필드, log.Logger 구현을 허용합니다. 인터페이스.
사용자 정의 로거 구현
자신만의 로거를 구현하려면 io.Writer 인터페이스를 충족하는 유형을 정의하고 Write 메소드를 구현하여 메시지를 사용자에게 전달합니다. 원하는 로깅 형식. 예:
type AppLogger struct { log *zap.SugaredLogger } func (l *AppLogger) Write(p []byte) (n int, err error) { l.log.Errorw(string(p)) return len(p), nil }
net/http와의 통합
net/http와 함께 사용자 정의 로거를 사용하려면 AppLogger 유형의 인스턴스를 ErrorLog 필드에 할당하세요. http.Server:
server := &http.Server{ Addr: addr, Handler: handler, ErrorLog: logger.New(&AppLogger{logger}, "", 0), }
Zap 사용 Logger
Zap 로거를 net/http와 통합하려면 오류 메시지를 Zap 로거에 전달하는 사용자 정의 작성기를 생성할 수 있습니다.
type fwdToZapWriter struct { logger *zap.SugaredLogger } func (fw *fwdToZapWriter) Write(p []byte) (n int, err error) { fw.logger.Errorw(string(p)) return len(p), nil }
그런 다음 fwdToZapWriter를 http.Server의 ErrorLog 필드에 추가합니다.
server := &http.Server{ Addr: addr, Handler: handler, ErrorLog: logger.New(&fwdToZapWriter{logger}, "", 0), }
이를 구현하여 단계를 거치면 AppLogger 또는 Zap logger에서 제공하는 사용자 정의 형식으로 net/http의 오류가 기록됩니다.
위 내용은 Go의 net/http 패키지 로그인을 어떻게 사용자 정의할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!