logger: slog improve
Some checks failed
lint / lint (pull_request) Successful in 56s
pr / test (pull_request) Failing after 1m3s

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2023-10-14 18:59:27 +03:00
parent 7b9a4924ad
commit da45c89e4e
2 changed files with 37 additions and 115 deletions

View File

@ -32,33 +32,19 @@ type Logger interface {
// Fields set fields to always be logged with keyval pairs // Fields set fields to always be logged with keyval pairs
Fields(fields ...interface{}) Logger Fields(fields ...interface{}) Logger
// Info level message // Info level message
Info(ctx context.Context, args ...interface{}) Info(ctx context.Context, msg string, args ...interface{})
// Trace level message
Trace(ctx context.Context, args ...interface{})
// Debug level message
Debug(ctx context.Context, args ...interface{})
// Warn level message
Warn(ctx context.Context, args ...interface{})
// Error level message
Error(ctx context.Context, args ...interface{})
// Fatal level message
Fatal(ctx context.Context, args ...interface{})
// Infof level message
Infof(ctx context.Context, msg string, args ...interface{})
// Tracef level message // Tracef level message
Tracef(ctx context.Context, msg string, args ...interface{}) Trace(ctx context.Context, msg string, args ...interface{})
// Debug level message // Debug level message
Debugf(ctx context.Context, msg string, args ...interface{}) Debug(ctx context.Context, msg string, args ...interface{})
// Warn level message // Warn level message
Warnf(ctx context.Context, msg string, args ...interface{}) Warn(ctx context.Context, msg string, args ...interface{})
// Error level message // Error level message
Errorf(ctx context.Context, msg string, args ...interface{}) Error(ctx context.Context, msg string, args ...interface{})
// Fatal level message // Fatal level message
Fatalf(ctx context.Context, msg string, args ...interface{}) Fatal(ctx context.Context, msg string, args ...interface{})
// Log logs message with needed level // Log logs message with needed level
Log(ctx context.Context, level Level, args ...interface{}) Log(ctx context.Context, level Level, msg string, args ...interface{})
// Logf logs message with needed level
Logf(ctx context.Context, level Level, msg string, args ...interface{})
// String returns the name of logger // String returns the name of logger
String() string String() string
} }
@ -66,64 +52,34 @@ type Logger interface {
// Field contains keyval pair // Field contains keyval pair
type Field interface{} type Field interface{}
// Info writes msg to default logger on info level // Info writes formatted msg to default logger on info level
func Info(ctx context.Context, args ...interface{}) { func Info(ctx context.Context, msg string, args ...interface{}) {
DefaultLogger.Info(ctx, args...) DefaultLogger.Info(ctx, msg, args...)
} }
// Error writes msg to default logger on error level // Error writes formatted msg to default logger on error level
func Error(ctx context.Context, args ...interface{}) { func Error(ctx context.Context, msg string, args ...interface{}) {
DefaultLogger.Error(ctx, args...) DefaultLogger.Error(ctx, msg, args...)
}
// Debug writes msg to default logger on debug level
func Debug(ctx context.Context, args ...interface{}) {
DefaultLogger.Debug(ctx, args...)
}
// Warn writes msg to default logger on warn level
func Warn(ctx context.Context, args ...interface{}) {
DefaultLogger.Warn(ctx, args...)
}
// Trace writes msg to default logger on trace level
func Trace(ctx context.Context, args ...interface{}) {
DefaultLogger.Trace(ctx, args...)
}
// Fatal writes msg to default logger on fatal level
func Fatal(ctx context.Context, args ...interface{}) {
DefaultLogger.Fatal(ctx, args...)
}
// Infof writes formatted msg to default logger on info level
func Infof(ctx context.Context, msg string, args ...interface{}) {
DefaultLogger.Infof(ctx, msg, args...)
}
// Errorf writes formatted msg to default logger on error level
func Errorf(ctx context.Context, msg string, args ...interface{}) {
DefaultLogger.Errorf(ctx, msg, args...)
} }
// Debugf writes formatted msg to default logger on debug level // Debugf writes formatted msg to default logger on debug level
func Debugf(ctx context.Context, msg string, args ...interface{}) { func Debugf(ctx context.Context, msg string, args ...interface{}) {
DefaultLogger.Debugf(ctx, msg, args...) DefaultLogger.Debug(ctx, msg, args...)
} }
// Warnf writes formatted msg to default logger on warn level // Warn writes formatted msg to default logger on warn level
func Warnf(ctx context.Context, msg string, args ...interface{}) { func Warn(ctx context.Context, msg string, args ...interface{}) {
DefaultLogger.Warnf(ctx, msg, args...) DefaultLogger.Warn(ctx, msg, args...)
} }
// Tracef writes formatted msg to default logger on trace level // Trace writes formatted msg to default logger on trace level
func Tracef(ctx context.Context, msg string, args ...interface{}) { func Trace(ctx context.Context, msg string, args ...interface{}) {
DefaultLogger.Tracef(ctx, msg, args...) DefaultLogger.Trace(ctx, msg, args...)
} }
// Fatalf writes formatted msg to default logger on fatal level // Fatal writes formatted msg to default logger on fatal level
func Fatalf(ctx context.Context, msg string, args ...interface{}) { func Fatal(ctx context.Context, msg string, args ...interface{}) {
DefaultLogger.Fatalf(ctx, msg, args...) DefaultLogger.Fatal(ctx, msg, args...)
} }
// V returns true if passed level enabled in default logger // V returns true if passed level enabled in default logger

View File

@ -2,7 +2,6 @@ package logger
import ( import (
"context" "context"
"fmt"
"os" "os"
"go.unistack.org/micro/v4/options" "go.unistack.org/micro/v4/options"
@ -133,70 +132,37 @@ func (s *slogLogger) Init(opts ...options.Option) error {
return nil return nil
} }
func (s *slogLogger) Log(ctx context.Context, lvl Level, args ...any) { func (s *slogLogger) Log(ctx context.Context, lvl Level, msg string, args ...any) {
if !s.V(lvl) { if !s.V(lvl) {
return return
} }
slvl := loggerToSlogLevel(lvl) slvl := loggerToSlogLevel(lvl)
msg := fmt.Sprint(args...) s.slog.Log(ctx, slvl, msg, args...)
s.slog.Log(ctx, slvl, msg)
} }
func (s *slogLogger) Logf(ctx context.Context, lvl Level, format string, args ...any) { func (s *slogLogger) Info(ctx context.Context, msg string, args ...interface{}) {
if !s.V(lvl) { s.Log(ctx, InfoLevel, msg, args...)
return
}
slvl := loggerToSlogLevel(lvl)
s.slog.Log(ctx, slvl, format, args...)
} }
func (s *slogLogger) Info(ctx context.Context, args ...any) { func (s *slogLogger) Debug(ctx context.Context, msg string, args ...any) {
s.Log(ctx, InfoLevel, args...) s.Log(ctx, DebugLevel, msg, args...)
} }
func (s *slogLogger) Infof(ctx context.Context, format string, args ...interface{}) { func (s *slogLogger) Trace(ctx context.Context, msg string, args ...interface{}) {
s.Logf(ctx, InfoLevel, format, args...) s.Log(ctx, TraceLevel, msg, args...)
} }
func (s *slogLogger) Debug(ctx context.Context, args ...any) { func (s *slogLogger) Error(ctx context.Context, msg string, args ...any) {
s.Log(ctx, DebugLevel, args...) s.Log(ctx, ErrorLevel, msg, args...)
} }
func (s *slogLogger) Debugf(ctx context.Context, format string, args ...any) { func (s *slogLogger) Fatal(ctx context.Context, msg string, args ...interface{}) {
s.Logf(ctx, DebugLevel, format, args...) s.Log(ctx, FatalLevel, msg, args...)
}
func (s *slogLogger) Error(ctx context.Context, args ...any) {
s.Log(ctx, ErrorLevel, args...)
}
func (s *slogLogger) Trace(ctx context.Context, args ...interface{}) {
s.Log(ctx, TraceLevel, args...)
}
func (s *slogLogger) Tracef(ctx context.Context, msg string, args ...interface{}) {
s.Logf(ctx, TraceLevel, msg, args...)
}
func (s *slogLogger) Errorf(ctx context.Context, format string, args ...any) {
s.Logf(ctx, ErrorLevel, format, args...)
}
func (s *slogLogger) Fatal(ctx context.Context, args ...any) {
s.Log(ctx, FatalLevel, args...)
}
func (s *slogLogger) Fatalf(ctx context.Context, msg string, args ...interface{}) {
s.Logf(ctx, FatalLevel, msg, args...)
os.Exit(1) os.Exit(1)
} }
func (s *slogLogger) Warn(ctx context.Context, args ...any) { func (s *slogLogger) Warn(ctx context.Context, msg string, args ...any) {
s.Log(ctx, WarnLevel, args...) s.Log(ctx, WarnLevel, msg, args...)
}
func (s *slogLogger) Warnf(ctx context.Context, format string, args ...any) {
s.Logf(ctx, WarnLevel, format, args...)
} }
func (s *slogLogger) String() string { func (s *slogLogger) String() string {