From 3f7ef2e0c23f5dfa9c0f121ad808d389fe121a0f Mon Sep 17 00:00:00 2001 From: Levente Batuska Date: Sun, 12 Jan 2025 12:52:07 +0100 Subject: [PATCH] feat(Logger): add slog based logger --- logger/interfaces.go | 1 + logger/sloglogger.go | 58 ++++++++++++++++++++++++++++++++++++++++++++ logger/types.go | 2 ++ 3 files changed, 61 insertions(+) create mode 100644 logger/sloglogger.go diff --git a/logger/interfaces.go b/logger/interfaces.go index 99c2825..95c5ee1 100644 --- a/logger/interfaces.go +++ b/logger/interfaces.go @@ -46,4 +46,5 @@ var ( _ Logger = (*NullLoggerImpl)(nil) _ Logger = (*ConsoleLoggerImpl)(nil) _ Logger = (*FileLoggerImpl)(nil) + _ Logger = (*SlogLoggerImpl)(nil) ) diff --git a/logger/sloglogger.go b/logger/sloglogger.go new file mode 100644 index 0000000..c784c9a --- /dev/null +++ b/logger/sloglogger.go @@ -0,0 +1,58 @@ +package Logger + +import "log/slog" + +func (lgr *SlogLoggerImpl) init() {} + +func (logger *SlogLoggerImpl) StartLogger() {} + +func (logger *SlogLoggerImpl) StopLogger() {} + +func (logger *SlogLoggerImpl) Write(message string) { + slog.Info(message) +} + +func (logger *SlogLoggerImpl) WriteRequest(message string, uuid string) { + slog.Info(message, "UUID", uuid) +} + +func (logger *SlogLoggerImpl) WriteErr(err error) (errnum int) { + if err != nil { + slog.Error(err.Error()) + errnum = 1 + } + return errnum +} + +func (logger *SlogLoggerImpl) WriteErrRequest(err error, uuid string) (errnum int) { + if err != nil { + slog.Error(err.Error(), "UUID", uuid) + errnum = 1 + } + return errnum +} + +func (logger *SlogLoggerImpl) WriteDebug(message string) { + if DEBUG { + logger.Write(message) + } +} + +func (logger *SlogLoggerImpl) WriteRequestDebug(message string, uuid string) { +} + +func (logger *SlogLoggerImpl) WriteErrDebug(err error) (errnum int) { + if err != nil { + logger.WriteErr(err) + errnum = 1 + } + return errnum +} + +func (logger *SlogLoggerImpl) WriteErrRequestDebug(err error, uuid string) (errnum int) { + if err != nil { + logger.WriteErrRequest(err, uuid) + errnum = 1 + } + return errnum +} diff --git a/logger/types.go b/logger/types.go index aaaa3a4..cfb49ee 100644 --- a/logger/types.go +++ b/logger/types.go @@ -20,3 +20,5 @@ type FileLoggerImpl struct { filepath string initfilepath string } + +type SlogLoggerImpl struct{}