mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-16 07:16:38 +00:00
Add structured logging for HTTP server errors
This commit is contained in:
21
proxy/log.go
Normal file
21
proxy/log.go
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package proxy
|
||||||
|
|
||||||
|
import (
|
||||||
|
stdlog "log"
|
||||||
|
|
||||||
|
log "github.com/sirupsen/logrus"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
// HTTP server type identifiers for logging
|
||||||
|
logtagFieldHTTPServer = "http-server"
|
||||||
|
logtagValueHTTPS = "https"
|
||||||
|
logtagValueACME = "acme"
|
||||||
|
logtagValueDebug = "debug"
|
||||||
|
)
|
||||||
|
|
||||||
|
// newHTTPServerLogger creates a standard library logger that writes to logrus
|
||||||
|
// with the specified server type field.
|
||||||
|
func newHTTPServerLogger(logger *log.Logger, serverType string) *stdlog.Logger {
|
||||||
|
return stdlog.New(logger.WithField(logtagFieldHTTPServer, serverType).WriterLevel(log.WarnLevel), "", 0)
|
||||||
|
}
|
||||||
@@ -221,8 +221,9 @@ func (s *Server) ListenAndServe(ctx context.Context, addr string) (err error) {
|
|||||||
// Only start HTTP server for HTTP-01 challenge type
|
// Only start HTTP server for HTTP-01 challenge type
|
||||||
if s.ACMEChallengeType == "http-01" {
|
if s.ACMEChallengeType == "http-01" {
|
||||||
s.http = &http.Server{
|
s.http = &http.Server{
|
||||||
Addr: s.ACMEChallengeAddress,
|
Addr: s.ACMEChallengeAddress,
|
||||||
Handler: s.acme.HTTPHandler(nil),
|
Handler: s.acme.HTTPHandler(nil),
|
||||||
|
ErrorLog: newHTTPServerLogger(s.Logger, logtagValueACME),
|
||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
if err := s.http.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
if err := s.http.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
|
||||||
@@ -272,8 +273,9 @@ func (s *Server) ListenAndServe(ctx context.Context, addr string) (err error) {
|
|||||||
debugHandler.SetCertStatus(s.acme)
|
debugHandler.SetCertStatus(s.acme)
|
||||||
}
|
}
|
||||||
s.debug = &http.Server{
|
s.debug = &http.Server{
|
||||||
Addr: debugAddr,
|
Addr: debugAddr,
|
||||||
Handler: debugHandler,
|
Handler: debugHandler,
|
||||||
|
ErrorLog: newHTTPServerLogger(s.Logger, logtagValueDebug),
|
||||||
}
|
}
|
||||||
go func() {
|
go func() {
|
||||||
s.Logger.Infof("starting debug endpoint on %s", debugAddr)
|
s.Logger.Infof("starting debug endpoint on %s", debugAddr)
|
||||||
@@ -304,6 +306,7 @@ func (s *Server) ListenAndServe(ctx context.Context, addr string) (err error) {
|
|||||||
Addr: addr,
|
Addr: addr,
|
||||||
Handler: s.meter.Middleware(accessLog.Middleware(web.AssetHandler(s.auth.Protect(s.proxy)))),
|
Handler: s.meter.Middleware(accessLog.Middleware(web.AssetHandler(s.auth.Protect(s.proxy)))),
|
||||||
TLSConfig: tlsConfig,
|
TLSConfig: tlsConfig,
|
||||||
|
ErrorLog: newHTTPServerLogger(s.Logger, logtagValueHTTPS),
|
||||||
}
|
}
|
||||||
|
|
||||||
httpsErr := make(chan error, 1)
|
httpsErr := make(chan error, 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user