logger: use key names from opts (#271)
All checks were successful
/ autoupdate (push) Successful in 1m14s

Reviewed-on: #271
This commit is contained in:
Василий Толстов 2023-10-17 01:05:55 +03:00
parent 17698440ed
commit dbcf6bb74a

View File

@ -20,17 +20,20 @@ var (
fatalValue = slog.StringValue("fatal")
)
var renameAttr = func(_ []string, a slog.Attr) slog.Attr {
func (s *slogLogger) renameAttr(_ []string, a slog.Attr) slog.Attr {
switch a.Key {
case slog.SourceKey:
source := a.Value.Any().(*slog.Source)
a.Value = slog.StringValue(source.File + ":" + strconv.Itoa(source.Line))
a.Key = "caller"
a.Key = s.opts.SourceKey
case slog.TimeKey:
a.Key = "timestamp"
a.Key = s.opts.TimeKey
case slog.MessageKey:
a.Key = s.opts.MessageKey
case slog.LevelKey:
level := a.Value.Any().(slog.Level)
lvl := slogToLoggerLevel(level)
a.Key = s.opts.LevelKey
switch {
case lvl < DebugLevel:
a.Value = traceValue
@ -76,7 +79,7 @@ func (s *slogLogger) Clone(opts ...options.Option) Logger {
l.leveler = new(slog.LevelVar)
handleOpt := &slog.HandlerOptions{
ReplaceAttr: renameAttr,
ReplaceAttr: s.renameAttr,
Level: l.leveler,
AddSource: true,
}
@ -105,7 +108,7 @@ func (s *slogLogger) Attrs(attrs ...interface{}) Logger {
nl.leveler.Set(s.leveler.Level())
handleOpt := &slog.HandlerOptions{
ReplaceAttr: renameAttr,
ReplaceAttr: nl.renameAttr,
Level: s.leveler,
AddSource: true,
}
@ -132,7 +135,7 @@ func (s *slogLogger) Init(opts ...options.Option) error {
s.leveler = new(slog.LevelVar)
handleOpt := &slog.HandlerOptions{
ReplaceAttr: renameAttr,
ReplaceAttr: s.renameAttr,
Level: s.leveler,
AddSource: true,
}