Files
gerald/internal/adapters/logger/log.go
2024-04-20 16:45:56 +03:00

41 lines
911 B
Go
Executable File

package logger
import (
"gerald/internal/adapters/config"
"os"
"time"
"github.com/rs/zerolog"
"github.com/rs/zerolog/pkgerrors"
)
func NewLogger(config *config.Config) zerolog.Logger {
level, err := zerolog.ParseLevel(config.LoggingLevel)
if err != nil {
panic(err)
}
//zerolog global settings
zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack
zerolog.LevelFieldName = "lvl"
zerolog.MessageFieldName = "msg"
zerolog.DurationFieldUnit = time.Millisecond
zerolog.DurationFieldInteger = true
//zerolog output settings
output := zerolog.ConsoleWriter{
Out: os.Stderr,
NoColor: false,
TimeFormat: time.Stamp,
PartsOrder: []string{
zerolog.TimestampFieldName,
zerolog.LevelFieldName,
zerolog.MessageFieldName,
zerolog.CallerFieldName,
},
}
//create adapted logger with output settings
return zerolog.New(output).Level(level).With().Timestamp().Logger()
}