mirror of
https://github.com/Xevion/banner.git
synced 2025-12-09 22:06:31 -06:00
fix: proper development logger
This commit is contained in:
@@ -63,7 +63,7 @@ func init() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if isDevelopment == "development" {
|
if isDevelopment == "development" {
|
||||||
log.Logger = zerolog.New(utils.LogSplitter{Std: os.Stdout, Err: os.Stderr}).With().Timestamp().Logger()
|
log.Logger = zerolog.New(utils.NewConsoleWriter()).With().Timestamp().Logger()
|
||||||
} else {
|
} else {
|
||||||
log.Logger = zerolog.New(utils.LogSplitter{Std: os.Stdout, Err: os.Stderr}).With().Timestamp().Logger()
|
log.Logger = zerolog.New(utils.LogSplitter{Std: os.Stdout, Err: os.Stderr}).With().Timestamp().Logger()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,48 @@ var (
|
|||||||
errConsole = zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: timeFormat}
|
errConsole = zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: timeFormat}
|
||||||
)
|
)
|
||||||
|
|
||||||
// logSplitter implements zerolog.LevelWriter
|
// NewConsoleWriter creates a new console writer with improved formatting for development
|
||||||
|
func NewConsoleWriter() zerolog.LevelWriter {
|
||||||
|
return &ConsoleLogSplitter{
|
||||||
|
stdConsole: zerolog.ConsoleWriter{
|
||||||
|
Out: os.Stdout,
|
||||||
|
TimeFormat: timeFormat,
|
||||||
|
NoColor: false,
|
||||||
|
PartsOrder: []string{zerolog.TimestampFieldName, zerolog.LevelFieldName, zerolog.MessageFieldName},
|
||||||
|
PartsExclude: []string{},
|
||||||
|
FieldsExclude: []string{},
|
||||||
|
},
|
||||||
|
errConsole: zerolog.ConsoleWriter{
|
||||||
|
Out: os.Stderr,
|
||||||
|
TimeFormat: timeFormat,
|
||||||
|
NoColor: false,
|
||||||
|
PartsOrder: []string{zerolog.TimestampFieldName, zerolog.LevelFieldName, zerolog.MessageFieldName},
|
||||||
|
PartsExclude: []string{},
|
||||||
|
FieldsExclude: []string{},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ConsoleLogSplitter implements zerolog.LevelWriter with console formatting
|
||||||
|
type ConsoleLogSplitter struct {
|
||||||
|
stdConsole zerolog.ConsoleWriter
|
||||||
|
errConsole zerolog.ConsoleWriter
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write should not be called
|
||||||
|
func (c *ConsoleLogSplitter) Write(p []byte) (n int, err error) {
|
||||||
|
return c.stdConsole.Write(p)
|
||||||
|
}
|
||||||
|
|
||||||
|
// WriteLevel write to the appropriate output with console formatting
|
||||||
|
func (c *ConsoleLogSplitter) WriteLevel(level zerolog.Level, p []byte) (n int, err error) {
|
||||||
|
if level <= zerolog.WarnLevel {
|
||||||
|
return c.stdConsole.Write(p)
|
||||||
|
}
|
||||||
|
return c.errConsole.Write(p)
|
||||||
|
}
|
||||||
|
|
||||||
|
// LogSplitter implements zerolog.LevelWriter
|
||||||
type LogSplitter struct {
|
type LogSplitter struct {
|
||||||
Std io.Writer
|
Std io.Writer
|
||||||
Err io.Writer
|
Err io.Writer
|
||||||
|
|||||||
Reference in New Issue
Block a user