A logr LogSink implementation using Zerolog.
import (
"os"
"github.com/go-logr/logr"
"github.com/go-logr/zerologr"
"github.com/rs/zerolog"
)
func main() {
zerolog.TimeFieldFormat = zerolog.TimeFormatUnixMs
zerologr.NameFieldName = "logger"
zerologr.NameSeparator = "/"
zl := zerolog.New(os.Stderr)
zl = zl.With().Caller().Timestamp().Logger()
var log logr.Logger = zerologr.New(&zl)
log.Info("Logr in action!", "the answer", 42)
}
For the most part, concepts in Zerolog correspond directly with those in logr.
Levels in logr correspond to custom debug levels in Zerolog. Any given level
in logr is represents by zerologLevel = 1 - logrLevel
.
For example V(2)
is equivalent to Zerolog's TraceLevel
, while V(1)
is
equivalent to Zerolog's DebugLevel
.