https://github.com/go-logr/zerologr
A logr implementation using Zerolog
https://github.com/go-logr/zerologr
go logger logr zerolog
Last synced: 6 months ago
JSON representation
A logr implementation using Zerolog
- Host: GitHub
- URL: https://github.com/go-logr/zerologr
- Owner: go-logr
- License: apache-2.0
- Created: 2021-07-27T13:10:44.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-03T11:17:21.000Z (over 3 years ago)
- Last Synced: 2025-12-31T11:56:48.774Z (6 months ago)
- Topics: go, logger, logr, zerolog
- Language: Go
- Homepage:
- Size: 36.1 KB
- Stars: 42
- Watchers: 6
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Zerologr
[](https://pkg.go.dev/github.com/go-logr/zerologr)

[](https://goreportcard.com/report/github.com/go-logr/zerologr)
A [logr](https://github.com/go-logr/logr) LogSink implementation using [Zerolog](https://github.com/rs/zerolog).
## Usage
```go
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 = "/"
zerologr.SetMaxV(1)
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)
}
```
## Implementation Details
For the most part, concepts in Zerolog correspond directly with those in logr.
V-levels in logr correspond to levels in Zerolog as `zerologLevel = 1 - logrV`. `logr.V(0)` is equivalent to `zerolog.InfoLevel` or 1; `logr.V(1)` is equivalent to `zerolog.DebugLevel` or 0 (default global level in Zerolog); `logr.V(2)` is equivalent to `zerolog.TraceLevel` or -1. Higher than 2 V-level is possible but misses some features in Zerolog, e.g. Hooks and Sampling. V-level value is a number and is only logged on Info(), not Error().