mirror of
https://dev.azure.com/schwarzit/schwarzit.stackit-public/_git/audit-go
synced 2026-02-07 16:47:24 +00:00
Split log implementations
This commit is contained in:
parent
a98e802f55
commit
3f222fc2be
6 changed files with 146 additions and 129 deletions
57
log/log.go
57
log/log.go
|
|
@ -4,17 +4,8 @@ import (
|
|||
"errors"
|
||||
"log/slog"
|
||||
)
|
||||
import "github.com/rs/zerolog/log"
|
||||
|
||||
var AuditLogger = NewSlogAuditLogger(slog.Default())
|
||||
|
||||
func NewSlogAuditLogger(logger *slog.Logger) Logger {
|
||||
return SlogLogger{logger: logger}
|
||||
}
|
||||
|
||||
func NewZerologAuditLogger() Logger {
|
||||
return ZeroLogLogger{}
|
||||
}
|
||||
var AuditLogger Logger = SlogLogger{logger: slog.Default()}
|
||||
|
||||
type Logger interface {
|
||||
Debug(msg string, err ...error)
|
||||
|
|
@ -23,52 +14,6 @@ type Logger interface {
|
|||
Error(msg string, err ...error)
|
||||
}
|
||||
|
||||
type SlogLogger struct {
|
||||
logger *slog.Logger
|
||||
}
|
||||
|
||||
func (s SlogLogger) Debug(msg string, err ...error) {
|
||||
s.logger.Debug(msg, s.getWrappedError(err))
|
||||
}
|
||||
|
||||
func (s SlogLogger) Info(msg string, err ...error) {
|
||||
s.logger.Info(msg, s.getWrappedError(err))
|
||||
}
|
||||
|
||||
func (s SlogLogger) Warn(msg string, err ...error) {
|
||||
s.logger.Warn(msg, s.getWrappedError(err))
|
||||
}
|
||||
|
||||
func (s SlogLogger) Error(msg string, err ...error) {
|
||||
s.logger.Error(msg, s.getWrappedError(err))
|
||||
}
|
||||
|
||||
func (s SlogLogger) getWrappedError(err []error) slog.Attr {
|
||||
var wrappedErr slog.Attr
|
||||
if err != nil {
|
||||
wrappedErr = slog.Any("error", wrapErr(err))
|
||||
}
|
||||
return wrappedErr
|
||||
}
|
||||
|
||||
type ZeroLogLogger struct{}
|
||||
|
||||
func (l ZeroLogLogger) Debug(msg string, err ...error) {
|
||||
log.Debug().Err(wrapErr(err)).Msg(msg)
|
||||
}
|
||||
|
||||
func (l ZeroLogLogger) Info(msg string, err ...error) {
|
||||
log.Info().Err(wrapErr(err)).Msg(msg)
|
||||
}
|
||||
|
||||
func (l ZeroLogLogger) Warn(msg string, err ...error) {
|
||||
log.Warn().Err(wrapErr(err)).Msg(msg)
|
||||
}
|
||||
|
||||
func (l ZeroLogLogger) Error(msg string, err ...error) {
|
||||
log.Error().Err(wrapErr(err)).Msg(msg)
|
||||
}
|
||||
|
||||
func wrapErr(err []error) error {
|
||||
var e error
|
||||
if len(err) == 0 {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package log
|
|||
|
||||
import (
|
||||
"errors"
|
||||
"log/slog"
|
||||
"testing"
|
||||
)
|
||||
|
||||
|
|
@ -39,75 +38,3 @@ func Test_DefaultLogger(t *testing.T) {
|
|||
AuditLogger.Error("error message", errors.New("custom error"))
|
||||
})
|
||||
}
|
||||
|
||||
func Test_SlogLogger(t *testing.T) {
|
||||
AuditLogger = NewSlogAuditLogger(slog.Default())
|
||||
|
||||
t.Run("debug", func(t *testing.T) {
|
||||
AuditLogger.Debug("debug message")
|
||||
})
|
||||
|
||||
t.Run("debug with error details", func(t *testing.T) {
|
||||
AuditLogger.Debug("debug message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("info", func(t *testing.T) {
|
||||
AuditLogger.Info("info message")
|
||||
})
|
||||
|
||||
t.Run("info with error details", func(t *testing.T) {
|
||||
AuditLogger.Info("info message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("warn", func(t *testing.T) {
|
||||
AuditLogger.Warn("warn message")
|
||||
})
|
||||
|
||||
t.Run("warn with error details", func(t *testing.T) {
|
||||
AuditLogger.Warn("warn message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("error", func(t *testing.T) {
|
||||
AuditLogger.Error("error message")
|
||||
})
|
||||
|
||||
t.Run("error with error details", func(t *testing.T) {
|
||||
AuditLogger.Error("error message", errors.New("custom error"))
|
||||
})
|
||||
}
|
||||
|
||||
func Test_ZerologLogger(t *testing.T) {
|
||||
AuditLogger = NewZerologAuditLogger()
|
||||
|
||||
t.Run("debug", func(t *testing.T) {
|
||||
AuditLogger.Debug("debug message")
|
||||
})
|
||||
|
||||
t.Run("debug with error details", func(t *testing.T) {
|
||||
AuditLogger.Debug("debug message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("info", func(t *testing.T) {
|
||||
AuditLogger.Info("info message")
|
||||
})
|
||||
|
||||
t.Run("info with error details", func(t *testing.T) {
|
||||
AuditLogger.Info("info message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("warn", func(t *testing.T) {
|
||||
AuditLogger.Warn("warn message")
|
||||
})
|
||||
|
||||
t.Run("warn with error details", func(t *testing.T) {
|
||||
AuditLogger.Warn("warn message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("error", func(t *testing.T) {
|
||||
AuditLogger.Error("error message")
|
||||
})
|
||||
|
||||
t.Run("error with error details", func(t *testing.T) {
|
||||
AuditLogger.Error("error message", errors.New("custom error"))
|
||||
})
|
||||
}
|
||||
|
|
|
|||
35
log/slog.go
Normal file
35
log/slog.go
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
package log
|
||||
|
||||
import "log/slog"
|
||||
|
||||
type SlogLogger struct {
|
||||
logger *slog.Logger
|
||||
}
|
||||
|
||||
func UseSlogAuditLogger(logger *slog.Logger) {
|
||||
AuditLogger = SlogLogger{logger: logger}
|
||||
}
|
||||
|
||||
func (s SlogLogger) Debug(msg string, err ...error) {
|
||||
s.logger.Debug(msg, s.getWrappedError(err))
|
||||
}
|
||||
|
||||
func (s SlogLogger) Info(msg string, err ...error) {
|
||||
s.logger.Info(msg, s.getWrappedError(err))
|
||||
}
|
||||
|
||||
func (s SlogLogger) Warn(msg string, err ...error) {
|
||||
s.logger.Warn(msg, s.getWrappedError(err))
|
||||
}
|
||||
|
||||
func (s SlogLogger) Error(msg string, err ...error) {
|
||||
s.logger.Error(msg, s.getWrappedError(err))
|
||||
}
|
||||
|
||||
func (s SlogLogger) getWrappedError(err []error) slog.Attr {
|
||||
var wrappedErr slog.Attr
|
||||
if err != nil {
|
||||
wrappedErr = slog.Any("error", wrapErr(err))
|
||||
}
|
||||
return wrappedErr
|
||||
}
|
||||
43
log/slog_test.go
Normal file
43
log/slog_test.go
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"log/slog"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func Test_SlogLogger(t *testing.T) {
|
||||
UseSlogAuditLogger(slog.Default())
|
||||
|
||||
t.Run("debug", func(t *testing.T) {
|
||||
AuditLogger.Debug("debug message")
|
||||
})
|
||||
|
||||
t.Run("debug with error details", func(t *testing.T) {
|
||||
AuditLogger.Debug("debug message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("info", func(t *testing.T) {
|
||||
AuditLogger.Info("info message")
|
||||
})
|
||||
|
||||
t.Run("info with error details", func(t *testing.T) {
|
||||
AuditLogger.Info("info message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("warn", func(t *testing.T) {
|
||||
AuditLogger.Warn("warn message")
|
||||
})
|
||||
|
||||
t.Run("warn with error details", func(t *testing.T) {
|
||||
AuditLogger.Warn("warn message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("error", func(t *testing.T) {
|
||||
AuditLogger.Error("error message")
|
||||
})
|
||||
|
||||
t.Run("error with error details", func(t *testing.T) {
|
||||
AuditLogger.Error("error message", errors.New("custom error"))
|
||||
})
|
||||
}
|
||||
25
log/zerolog.go
Normal file
25
log/zerolog.go
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
package log
|
||||
|
||||
import "github.com/rs/zerolog/log"
|
||||
|
||||
type ZeroLogLogger struct{}
|
||||
|
||||
func UseZerologAuditLogger() {
|
||||
AuditLogger = ZeroLogLogger{}
|
||||
}
|
||||
|
||||
func (l ZeroLogLogger) Debug(msg string, err ...error) {
|
||||
log.Debug().Err(wrapErr(err)).Msg(msg)
|
||||
}
|
||||
|
||||
func (l ZeroLogLogger) Info(msg string, err ...error) {
|
||||
log.Info().Err(wrapErr(err)).Msg(msg)
|
||||
}
|
||||
|
||||
func (l ZeroLogLogger) Warn(msg string, err ...error) {
|
||||
log.Warn().Err(wrapErr(err)).Msg(msg)
|
||||
}
|
||||
|
||||
func (l ZeroLogLogger) Error(msg string, err ...error) {
|
||||
log.Error().Err(wrapErr(err)).Msg(msg)
|
||||
}
|
||||
42
log/zerolog_test.go
Normal file
42
log/zerolog_test.go
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
package log
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func Test_ZerologLogger(t *testing.T) {
|
||||
UseZerologAuditLogger()
|
||||
|
||||
t.Run("debug", func(t *testing.T) {
|
||||
AuditLogger.Debug("debug message")
|
||||
})
|
||||
|
||||
t.Run("debug with error details", func(t *testing.T) {
|
||||
AuditLogger.Debug("debug message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("info", func(t *testing.T) {
|
||||
AuditLogger.Info("info message")
|
||||
})
|
||||
|
||||
t.Run("info with error details", func(t *testing.T) {
|
||||
AuditLogger.Info("info message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("warn", func(t *testing.T) {
|
||||
AuditLogger.Warn("warn message")
|
||||
})
|
||||
|
||||
t.Run("warn with error details", func(t *testing.T) {
|
||||
AuditLogger.Warn("warn message", errors.New("custom error"))
|
||||
})
|
||||
|
||||
t.Run("error", func(t *testing.T) {
|
||||
AuditLogger.Error("error message")
|
||||
})
|
||||
|
||||
t.Run("error with error details", func(t *testing.T) {
|
||||
AuditLogger.Error("error message", errors.New("custom error"))
|
||||
})
|
||||
}
|
||||
Loading…
Reference in a new issue