-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathlogger_benchmark_test.go
68 lines (56 loc) · 1.45 KB
/
logger_benchmark_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package logger_test
import (
gologger "log"
"testing"
"github.com/gildas/go-logger"
)
func BenchmarkLogger_standard(b *testing.B) {
file, teardown := CreateTempFile()
defer teardown()
log := gologger.New(file, "", gologger.LstdFlags)
for i := 0; i < b.N; i++ {
log.Printf("Hello World! (%d)", i)
}
}
func BenchmarkLogger_buffered(b *testing.B) {
file, teardown := CreateTempFile()
defer teardown()
log := logger.Create("benchmark", &logger.FileStream{Path: file.Name()})
for i := 0; i < b.N; i++ {
log.Infof("Hello World! (%d)", i)
}
log.Flush()
}
func BenchmarkLogger_unbuffered(b *testing.B) {
file, teardown := CreateTempFile()
defer teardown()
log := logger.Create("benchmark", &logger.FileStream{Path: file.Name(), Unbuffered: true})
for i := 0; i < b.N; i++ {
log.Infof("Hello World! (%d)", i)
}
}
func BenchmarkLogger_buffered_with_marshal(b *testing.B) {
file, teardown := CreateTempFile()
defer teardown()
log := logger.Create("benchmark", &logger.FileStream{Path: file.Name()})
object := struct {
Name string
Age int
}{
Name: "John Doe",
Age: 42,
}
for i := 0; i < b.N; i++ {
log.Record("object", object).Infof("Hello World! (%d)", i)
}
log.Flush()
}
func BenchmarkLogger_buffered_above_level(b *testing.B) {
file, teardown := CreateTempFile()
defer teardown()
log := logger.Create("benchmark", &logger.FileStream{Path: file.Name()})
for i := 0; i < b.N; i++ {
log.Tracef("Hello World! (%d)", i)
}
log.Flush()
}