httpd request logger: set log level based on the status code

Fixes #1393

Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
Nicola Murino 2023-08-20 19:01:16 +02:00
parent ce8dbda44b
commit 397cad93df
No known key found for this signature in database
GPG key ID: 935D2952DEC4EECF

View file

@ -73,7 +73,15 @@ func (l *StructuredLogger) NewLogEntry(r *http.Request) middleware.LogEntry {
// Write logs a new entry at the end of the HTTP request // Write logs a new entry at the end of the HTTP request
func (l *StructuredLoggerEntry) Write(status, bytes int, _ http.Header, elapsed time.Duration, _ any) { func (l *StructuredLoggerEntry) Write(status, bytes int, _ http.Header, elapsed time.Duration, _ any) {
metric.HTTPRequestServed(status) metric.HTTPRequestServed(status)
l.Logger.Info(). var ev *zerolog.Event
if status >= http.StatusInternalServerError {
ev = l.Logger.Error()
} else if status >= http.StatusBadRequest {
ev = l.Logger.Warn()
} else {
ev = l.Logger.Debug()
}
ev.
Timestamp(). Timestamp().
Str("sender", "httpd"). Str("sender", "httpd").
Fields(l.fields). Fields(l.fields).