51 lines
1.2 KiB
Go
51 lines
1.2 KiB
Go
// Package slog contains a Logger type that satisfies [cosmossdk.io/log.Logger],
|
|
// backed by a standard library [*log/slog.Logger].
|
|
package slog
|
|
|
|
import (
|
|
"log/slog"
|
|
|
|
"cosmossdk.io/log"
|
|
)
|
|
|
|
var _ log.Logger = Logger{}
|
|
|
|
// Logger satisfies [log.Logger] with logging backed by
|
|
// an instance of [*slog.Logger].
|
|
type Logger struct {
|
|
log *slog.Logger
|
|
}
|
|
|
|
// NewCustomLogger returns a Logger backed by an existing slog.Logger instance.
|
|
// All logging methods are called directly on the *slog.Logger;
|
|
// therefore it is the caller's responsibility to configure message filtering,
|
|
// level filtering, output format, and so on.
|
|
func NewCustomLogger(log *slog.Logger) Logger {
|
|
return Logger{log: log}
|
|
}
|
|
|
|
func (l Logger) Info(msg string, keyVals ...any) {
|
|
l.log.Info(msg, keyVals...)
|
|
}
|
|
|
|
func (l Logger) Warn(msg string, keyVals ...any) {
|
|
l.log.Warn(msg, keyVals...)
|
|
}
|
|
|
|
func (l Logger) Error(msg string, keyVals ...any) {
|
|
l.log.Error(msg, keyVals...)
|
|
}
|
|
|
|
func (l Logger) Debug(msg string, keyVals ...any) {
|
|
l.log.Debug(msg, keyVals...)
|
|
}
|
|
|
|
func (l Logger) With(keyVals ...any) log.Logger {
|
|
return Logger{log: l.log.With(keyVals...)}
|
|
}
|
|
|
|
// Impl returns l's underlying [*slog.Logger].
|
|
func (l Logger) Impl() any {
|
|
return l.log
|
|
}
|