mirror of
https://github.com/retailcrm/mg-transport-core.git
synced 2024-11-28 16:06:07 +03:00
88 lines
2.1 KiB
Go
88 lines
2.1 KiB
Go
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...)
|
|
}
|