1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-04-25 12:24:54 +02:00

47 lines
660 B
Go
Raw Normal View History

2018-09-28 00:28:33 -04:00
package logging
import (
"context"
2018-09-28 21:04:16 -04:00
"io"
"github.com/rs/zerolog"
2018-09-28 00:28:33 -04:00
)
2018-09-28 21:04:16 -04:00
type (
Level uint8
Options struct {
Writer io.Writer
Level Level
Fields map[string]interface{}
2018-09-28 21:04:16 -04:00
}
)
2018-09-28 00:28:33 -04:00
const (
DebugLevel Level = iota
InfoLevel
WarnLevel
ErrorLevel
FatalLevel
PanicLevel
NoLevel
Disabled
)
func WithContext(ctx context.Context, opts Options) context.Context {
c := zerolog.New(opts.Writer).With().Timestamp()
2018-09-28 21:04:16 -04:00
for k, v := range opts.Fields {
c = c.Interface(k, v)
2018-09-28 21:04:16 -04:00
}
logger := c.Logger()
logger.Level(zerolog.Level(opts.Level))
2018-09-28 21:04:16 -04:00
return logger.WithContext(ctx)
}
func FromContext(ctx context.Context) *zerolog.Logger {
2018-09-28 00:28:33 -04:00
return zerolog.Ctx(ctx)
}