41 lines
911 B
Go
Executable File
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()
|
|
}
|