package zerolog import ( "errors" "io/ioutil" "testing" ) var ( errExample = errors.New("fail") fakeMessage = "Test logging, but use a somewhat realistic message length." ) func BenchmarkLogEmpty(b *testing.B) { logger := New(ioutil.Discard) b.ResetTimer() b.RunParallel(func(pb *testing.PB) { for pb.Next() { logger.Log().Msg("") } }) } func BenchmarkDisabled(b *testing.B) { logger := New(ioutil.Discard).Level(Disabled) b.ResetTimer() b.RunParallel(func(pb *testing.PB) { for pb.Next() { logger.Info().Msg(fakeMessage) } }) } func BenchmarkInfo(b *testing.B) { logger := New(ioutil.Discard) b.ResetTimer() b.RunParallel(func(pb *testing.PB) { for pb.Next() { logger.Info().Msg(fakeMessage) } }) } func BenchmarkContextFields(b *testing.B) { logger := New(ioutil.Discard).With(). Str("string", "four!"). Str("time", "now"). // XXX Str("duration", "123"). //XXX Str("another string", "done!"). Logger() b.ResetTimer() b.RunParallel(func(pb *testing.PB) { for pb.Next() { logger.Info().Msg(fakeMessage) } }) } func BenchmarkLogFields(b *testing.B) { logger := New(ioutil.Discard) b.ResetTimer() b.RunParallel(func(pb *testing.PB) { for pb.Next() { logger.Info(). Str("string", "four!"). Str("time", "now"). // XXX Str("duration", "123"). //XXX Str("another string", "done!"). Msg(fakeMessage) } }) }