tamalsaha / zapr

A logr implementation using Zap

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Zapr ⚡

A logr implementation using Zap.

Usage

import (
    "fmt"

    "go.uber.org/zap"
    "github.com/go-logr/logr"
    "github.com/directxman12/zapr"
)

func main() {
    var log logr.Logger

    zapLog, err := zap.NewDevelopment()
    if err != nil {
        panic(fmt.Sprintf("who watches the watchmen (%v)?", err))
    }
    log = zapr.NewLogger(zapLog)

    log.Info("Logr in action!", "the answer", 42)
}

Implementation Details

For the most part, concepts in Zap correspond directly with those in logr.

Unlike Zap, all fields must be in the form of suggared fields -- it's illegal to pass a strongly-typed Zap field in a key position to any of the logging methods (Log, Error).

Levels in logr correspond to custom debug levels in Zap. Any given level in logr is represents by its inverse in Zap (zapLevel = -1*logrLevel).

For example V(2) is equivalent to log level -2 in Zap, while V(1) is equivalent to Zap's DebugLevel.

About

A logr implementation using Zap

License:Apache License 2.0


Languages

Language:Go 100.0%