mg-transport-core/core/logger/default.go

88 lines
2.1 KiB
Go
Raw Normal View History

2023-10-18 14:27:23 +03:00
package logger
import (
"context"
"log/slog"
"os"
)
type Default struct {
Logger *slog.Logger
}
func NewDefault(log *slog.Logger) Logger {
return &Default{Logger: log}
}
func NewDefaultText() Logger {
return NewDefault(slog.New(slog.NewTextHandler(os.Stdout, DefaultOpts)))
}
func NewDefaultJSON() Logger {
return NewDefault(slog.New(slog.NewJSONHandler(os.Stdout, DefaultOpts)))
}
func NewDefaultNil() Logger {
return NewDefault(slog.New(NilHandler))
}
func (d *Default) Handler() slog.Handler {
return d.Logger.Handler()
}
func (d *Default) ForAccount(handler, conn, acc any) Logger {
return d.With(slog.Any(HandlerAttr, handler), slog.Any(ConnectionAttr, conn), slog.Any(AccountAttr, acc))
}
func (d *Default) With(args ...any) Logger {
return &Default{Logger: d.Logger.With(args...)}
}
func (d *Default) WithGroup(name string) Logger {
return &Default{Logger: d.Logger.WithGroup(name)}
}
func (d *Default) Enabled(ctx context.Context, level slog.Level) bool {
return d.Logger.Enabled(ctx, level)
}
func (d *Default) Log(ctx context.Context, level slog.Level, msg string, args ...any) {
d.Logger.Log(ctx, level, msg, args...)
}
func (d *Default) LogAttrs(ctx context.Context, level slog.Level, msg string, attrs ...slog.Attr) {
d.Logger.LogAttrs(ctx, level, msg, attrs...)
}
func (d *Default) Debug(msg string, args ...any) {
d.Logger.Debug(msg, args...)
}
func (d *Default) DebugContext(ctx context.Context, msg string, args ...any) {
d.Logger.DebugContext(ctx, msg, args...)
}
func (d *Default) Info(msg string, args ...any) {
d.Logger.Info(msg, args...)
}
func (d *Default) InfoContext(ctx context.Context, msg string, args ...any) {
d.Logger.InfoContext(ctx, msg, args...)
}
func (d *Default) Warn(msg string, args ...any) {
d.Logger.Warn(msg, args...)
}
func (d *Default) WarnContext(ctx context.Context, msg string, args ...any) {
d.Logger.WarnContext(ctx, msg, args...)
}
func (d *Default) Error(msg string, args ...any) {
d.Logger.Error(msg, args...)
}
func (d *Default) ErrorContext(ctx context.Context, msg string, args ...any) {
d.Logger.ErrorContext(ctx, msg, args...)
}