2018-03-28 18:49:41 +00:00
|
|
|
// +build !binary_log
|
|
|
|
|
2017-05-12 05:24:39 +00:00
|
|
|
package zerolog_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"errors"
|
2017-06-02 06:17:28 +00:00
|
|
|
stdlog "log"
|
2017-05-12 05:24:39 +00:00
|
|
|
"os"
|
2017-05-20 05:43:10 +00:00
|
|
|
"time"
|
2017-05-12 05:24:39 +00:00
|
|
|
|
|
|
|
"github.com/rs/zerolog"
|
|
|
|
)
|
|
|
|
|
|
|
|
func ExampleNew() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Info().Msg("hello world")
|
|
|
|
// Output: {"level":"info","message":"hello world"}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleLogger_With() {
|
|
|
|
log := zerolog.New(os.Stdout).
|
|
|
|
With().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Logger()
|
|
|
|
|
|
|
|
log.Info().Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"level":"info","foo":"bar","message":"hello world"}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleLogger_Level() {
|
|
|
|
log := zerolog.New(os.Stdout).Level(zerolog.WarnLevel)
|
|
|
|
|
|
|
|
log.Info().Msg("filtered out message")
|
|
|
|
log.Error().Msg("kept message")
|
|
|
|
|
|
|
|
// Output: {"level":"error","message":"kept message"}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleLogger_Sample() {
|
2017-08-29 01:52:15 +00:00
|
|
|
log := zerolog.New(os.Stdout).Sample(&zerolog.BasicSampler{N: 2})
|
2017-05-12 05:24:39 +00:00
|
|
|
|
|
|
|
log.Info().Msg("message 1")
|
|
|
|
log.Info().Msg("message 2")
|
|
|
|
log.Info().Msg("message 3")
|
|
|
|
log.Info().Msg("message 4")
|
|
|
|
|
2017-08-29 01:52:15 +00:00
|
|
|
// Output: {"level":"info","message":"message 2"}
|
|
|
|
// {"level":"info","message":"message 4"}
|
2017-05-12 05:24:39 +00:00
|
|
|
}
|
|
|
|
|
2017-12-01 17:52:37 +00:00
|
|
|
type LevelNameHook struct{}
|
|
|
|
|
|
|
|
func (h LevelNameHook) Run(e *zerolog.Event, l zerolog.Level, msg string) {
|
|
|
|
if l != zerolog.NoLevel {
|
|
|
|
e.Str("level_name", l.String())
|
|
|
|
} else {
|
|
|
|
e.Str("level_name", "NoLevel")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
type MessageHook string
|
|
|
|
|
|
|
|
func (h MessageHook) Run(e *zerolog.Event, l zerolog.Level, msg string) {
|
|
|
|
e.Str("the_message", msg)
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleLogger_Hook() {
|
|
|
|
var levelNameHook LevelNameHook
|
|
|
|
var messageHook MessageHook = "The message"
|
|
|
|
|
|
|
|
log := zerolog.New(os.Stdout).Hook(levelNameHook).Hook(messageHook)
|
|
|
|
|
|
|
|
log.Info().Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"level":"info","level_name":"info","the_message":"hello world","message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-09-02 02:56:35 +00:00
|
|
|
func ExampleLogger_Print() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Print("hello world")
|
|
|
|
|
|
|
|
// Output: {"level":"debug","message":"hello world"}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleLogger_Printf() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Printf("hello %s", "world")
|
|
|
|
|
|
|
|
// Output: {"level":"debug","message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-05-12 05:24:39 +00:00
|
|
|
func ExampleLogger_Debug() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Debug().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Int("n", 123).
|
|
|
|
Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"level":"debug","foo":"bar","n":123,"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleLogger_Info() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Info().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Int("n", 123).
|
|
|
|
Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"level":"info","foo":"bar","n":123,"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleLogger_Warn() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Warn().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Msg("a warning message")
|
|
|
|
|
2017-06-08 17:03:03 +00:00
|
|
|
// Output: {"level":"warn","foo":"bar","message":"a warning message"}
|
2017-05-12 05:24:39 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleLogger_Error() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Error().
|
|
|
|
Err(errors.New("some error")).
|
|
|
|
Msg("error doing something")
|
|
|
|
|
|
|
|
// Output: {"level":"error","error":"some error","message":"error doing something"}
|
|
|
|
}
|
|
|
|
|
2017-07-10 09:56:44 +00:00
|
|
|
func ExampleLogger_WithLevel() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.WithLevel(zerolog.InfoLevel).
|
|
|
|
Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"level":"info","message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-06-02 06:17:28 +00:00
|
|
|
func ExampleLogger_Write() {
|
|
|
|
log := zerolog.New(os.Stdout).With().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Logger()
|
|
|
|
|
|
|
|
stdlog.SetFlags(0)
|
|
|
|
stdlog.SetOutput(log)
|
|
|
|
|
|
|
|
stdlog.Print("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-05-12 05:24:39 +00:00
|
|
|
func ExampleLogger_Log() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Log().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Str("bar", "baz").
|
|
|
|
Msg("")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","bar":"baz"}
|
|
|
|
}
|
2017-05-18 07:10:45 +00:00
|
|
|
|
|
|
|
func ExampleEvent_Dict() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Log().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Dict("dict", zerolog.Dict().
|
|
|
|
Str("bar", "baz").
|
|
|
|
Int("n", 1),
|
|
|
|
).
|
|
|
|
Msg("hello world")
|
|
|
|
|
2017-05-20 02:43:59 +00:00
|
|
|
// Output: {"foo":"bar","dict":{"bar":"baz","n":1},"message":"hello world"}
|
2017-05-18 07:10:45 +00:00
|
|
|
}
|
|
|
|
|
2017-07-26 01:41:05 +00:00
|
|
|
type User struct {
|
|
|
|
Name string
|
|
|
|
Age int
|
|
|
|
Created time.Time
|
|
|
|
}
|
|
|
|
|
|
|
|
func (u User) MarshalZerologObject(e *zerolog.Event) {
|
|
|
|
e.Str("name", u.Name).
|
|
|
|
Int("age", u.Age).
|
|
|
|
Time("created", u.Created)
|
|
|
|
}
|
|
|
|
|
2017-07-26 07:14:43 +00:00
|
|
|
type Users []User
|
|
|
|
|
|
|
|
func (uu Users) MarshalZerologArray(a *zerolog.Array) {
|
|
|
|
for _, u := range uu {
|
|
|
|
a.Object(u)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleEvent_Array() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Log().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Array("array", zerolog.Arr().
|
|
|
|
Str("baz").
|
|
|
|
Int(1),
|
|
|
|
).
|
|
|
|
Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","array":["baz",1],"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleEvent_Array_object() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
// Users implements zerolog.LogArrayMarshaler
|
|
|
|
u := Users{
|
|
|
|
User{"John", 35, time.Time{}},
|
|
|
|
User{"Bob", 55, time.Time{}},
|
|
|
|
}
|
|
|
|
|
|
|
|
log.Log().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Array("users", u).
|
|
|
|
Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","users":[{"name":"John","age":35,"created":"0001-01-01T00:00:00Z"},{"name":"Bob","age":55,"created":"0001-01-01T00:00:00Z"}],"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-07-26 01:41:05 +00:00
|
|
|
func ExampleEvent_Object() {
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
2017-07-26 07:14:43 +00:00
|
|
|
// User implements zerolog.LogObjectMarshaler
|
2017-07-26 01:41:05 +00:00
|
|
|
u := User{"John", 35, time.Time{}}
|
|
|
|
|
|
|
|
log.Log().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Object("user", u).
|
|
|
|
Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","user":{"name":"John","age":35,"created":"0001-01-01T00:00:00Z"},"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-05-20 05:25:37 +00:00
|
|
|
func ExampleEvent_Interface() {
|
2017-05-20 02:56:18 +00:00
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
obj := struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
}{
|
|
|
|
Name: "john",
|
|
|
|
}
|
|
|
|
|
|
|
|
log.Log().
|
|
|
|
Str("foo", "bar").
|
2017-05-20 05:25:37 +00:00
|
|
|
Interface("obj", obj).
|
2017-05-20 02:56:18 +00:00
|
|
|
Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","obj":{"name":"john"},"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-05-20 05:43:10 +00:00
|
|
|
func ExampleEvent_Dur() {
|
2017-05-21 04:08:42 +00:00
|
|
|
d := time.Duration(10 * time.Second)
|
2017-05-20 05:43:10 +00:00
|
|
|
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Log().
|
|
|
|
Str("foo", "bar").
|
2017-05-21 04:08:42 +00:00
|
|
|
Dur("dur", d).
|
2017-05-20 05:43:10 +00:00
|
|
|
Msg("hello world")
|
|
|
|
|
2017-05-21 04:08:42 +00:00
|
|
|
// Output: {"foo":"bar","dur":10000,"message":"hello world"}
|
2017-05-20 05:43:10 +00:00
|
|
|
}
|
|
|
|
|
2017-07-25 19:50:35 +00:00
|
|
|
func ExampleEvent_Durs() {
|
|
|
|
d := []time.Duration{
|
|
|
|
time.Duration(10 * time.Second),
|
|
|
|
time.Duration(20 * time.Second),
|
|
|
|
}
|
|
|
|
|
|
|
|
log := zerolog.New(os.Stdout)
|
|
|
|
|
|
|
|
log.Log().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Durs("durs", d).
|
|
|
|
Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","durs":[10000,20000],"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-05-18 07:10:45 +00:00
|
|
|
func ExampleContext_Dict() {
|
|
|
|
log := zerolog.New(os.Stdout).With().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Dict("dict", zerolog.Dict().
|
|
|
|
Str("bar", "baz").
|
|
|
|
Int("n", 1),
|
|
|
|
).Logger()
|
|
|
|
|
|
|
|
log.Log().Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","dict":{"bar":"baz","n":1},"message":"hello world"}
|
|
|
|
}
|
2017-05-20 02:56:18 +00:00
|
|
|
|
2017-07-26 07:14:43 +00:00
|
|
|
func ExampleContext_Array() {
|
|
|
|
log := zerolog.New(os.Stdout).With().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Array("array", zerolog.Arr().
|
|
|
|
Str("baz").
|
|
|
|
Int(1),
|
|
|
|
).Logger()
|
|
|
|
|
|
|
|
log.Log().Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","array":["baz",1],"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
|
|
|
func ExampleContext_Array_object() {
|
|
|
|
// Users implements zerolog.LogArrayMarshaler
|
|
|
|
u := Users{
|
|
|
|
User{"John", 35, time.Time{}},
|
|
|
|
User{"Bob", 55, time.Time{}},
|
|
|
|
}
|
|
|
|
|
|
|
|
log := zerolog.New(os.Stdout).With().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Array("users", u).
|
|
|
|
Logger()
|
|
|
|
|
|
|
|
log.Log().Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","users":[{"name":"John","age":35,"created":"0001-01-01T00:00:00Z"},{"name":"Bob","age":55,"created":"0001-01-01T00:00:00Z"}],"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-07-26 01:41:05 +00:00
|
|
|
func ExampleContext_Object() {
|
2017-07-26 07:14:43 +00:00
|
|
|
// User implements zerolog.LogObjectMarshaler
|
2017-07-26 01:41:05 +00:00
|
|
|
u := User{"John", 35, time.Time{}}
|
|
|
|
|
|
|
|
log := zerolog.New(os.Stdout).With().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Object("user", u).
|
|
|
|
Logger()
|
|
|
|
|
|
|
|
log.Log().Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","user":{"name":"John","age":35,"created":"0001-01-01T00:00:00Z"},"message":"hello world"}
|
|
|
|
}
|
|
|
|
|
2017-05-20 05:25:37 +00:00
|
|
|
func ExampleContext_Interface() {
|
2017-05-20 02:56:18 +00:00
|
|
|
obj := struct {
|
|
|
|
Name string `json:"name"`
|
|
|
|
}{
|
|
|
|
Name: "john",
|
|
|
|
}
|
|
|
|
|
|
|
|
log := zerolog.New(os.Stdout).With().
|
|
|
|
Str("foo", "bar").
|
2017-05-20 05:25:37 +00:00
|
|
|
Interface("obj", obj).
|
2017-05-20 02:56:18 +00:00
|
|
|
Logger()
|
|
|
|
|
|
|
|
log.Log().Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","obj":{"name":"john"},"message":"hello world"}
|
|
|
|
}
|
2017-05-20 05:43:10 +00:00
|
|
|
|
|
|
|
func ExampleContext_Dur() {
|
2017-05-21 04:08:42 +00:00
|
|
|
d := time.Duration(10 * time.Second)
|
2017-05-20 05:43:10 +00:00
|
|
|
|
|
|
|
log := zerolog.New(os.Stdout).With().
|
|
|
|
Str("foo", "bar").
|
2017-05-21 04:08:42 +00:00
|
|
|
Dur("dur", d).
|
2017-05-20 05:43:10 +00:00
|
|
|
Logger()
|
|
|
|
|
|
|
|
log.Log().Msg("hello world")
|
|
|
|
|
2017-05-21 04:08:42 +00:00
|
|
|
// Output: {"foo":"bar","dur":10000,"message":"hello world"}
|
2017-05-20 05:43:10 +00:00
|
|
|
}
|
2017-07-25 19:50:35 +00:00
|
|
|
|
|
|
|
func ExampleContext_Durs() {
|
|
|
|
d := []time.Duration{
|
|
|
|
time.Duration(10 * time.Second),
|
|
|
|
time.Duration(20 * time.Second),
|
|
|
|
}
|
|
|
|
|
|
|
|
log := zerolog.New(os.Stdout).With().
|
|
|
|
Str("foo", "bar").
|
|
|
|
Durs("durs", d).
|
|
|
|
Logger()
|
|
|
|
|
|
|
|
log.Log().Msg("hello world")
|
|
|
|
|
|
|
|
// Output: {"foo":"bar","durs":[10000,20000],"message":"hello world"}
|
|
|
|
}
|