Documentation ¶
Overview ¶
Description: This file integrates the logger with go-logr/logr
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewLogrLogger ¶
NewLogr returns a gobox/pkg/log logger that implements the logr.Logger interface.
! This should ONLY be used if the consumer doesn't support calling ! gobox/pkg/log directly.
Example ¶
package main import ( "context" "encoding/json" "fmt" "strconv" "github.com/getoutreach/gobox/pkg/log" "github.com/getoutreach/gobox/pkg/log/adapters" "github.com/getoutreach/gobox/pkg/log/logtest" ) func printEntries(entries []log.F) { for _, entry := range entries { entry["@timestamp"] = "2021-12-21T14:19:20.0424249-08:00" bytes, err := json.Marshal(entry) if err != nil { fmt.Println("unexpected", err) } else { fmt.Println(string(bytes)) } } } func main() { logs := logtest.NewLogRecorder(nil) defer logs.Close() logger := adapters.NewLogrLogger(context.Background()) logger.Info(strconv.FormatBool(logger.Enabled())) logger.Info("hello, world", "a", 1) childLogger := logger.WithValues("c", 1, "b", "hello, world!") childLogger.Info("info!!") childLogger.Error(fmt.Errorf("bad thing"), "end of the world!") printEntries(logs.Entries()) }
Output: {"@timestamp":"2021-12-21T14:19:20.0424249-08:00","app.version":"testing","level":"INFO","message":"true"} {"@timestamp":"2021-12-21T14:19:20.0424249-08:00","a":1,"app.version":"testing","level":"INFO","message":"hello, world"} {"@timestamp":"2021-12-21T14:19:20.0424249-08:00","app.version":"testing","b":"hello, world!","c":1,"level":"INFO","message":"info!!"} {"@timestamp":"2021-12-21T14:19:20.0424249-08:00","app.version":"testing","b":"hello, world!","c":1,"error.error":"bad thing","error.kind":"error","error.message":"bad thing","level":"ERROR","message":"end of the world!"}
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.