-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathcolog_bench_test.go
59 lines (47 loc) · 1.55 KB
/
colog_bench_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
package colog
import (
"log"
"testing"
)
func BenchmarkLoggerNoFlags(b *testing.B) {
logger := log.New(new(nilWriter), "", 0)
for i := 0; i <= b.N; i++ {
logger.Println("error: benchmark")
}
}
func BenchmarkLoggerWithFlags(b *testing.B) {
logger := log.New(new(nilWriter), "", log.Llongfile|log.Ldate)
for i := 0; i <= b.N; i++ {
logger.Println("error: benchmark")
}
}
func BenchmarkCoLogPlainNoFlags(b *testing.B) {
doBench(b, "error: benchmark", 0, false, false)
}
func BenchmarkCoLogPlainWithFlags(b *testing.B) {
doBench(b, "error: benchmark", log.Llongfile|log.Ldate, false, false)
}
func BenchmarkCoLogPlainWithFlagsAndFields(b *testing.B) {
doBench(b, "error: benchmark KeyName1='Key Value1'", log.Llongfile|log.Ldate, true, false)
}
func BenchmarkCoLogColorNoFlags(b *testing.B) {
doBench(b, "error: benchmark", 0, false, true)
}
func BenchmarkCoLogColorWithFlags(b *testing.B) {
doBench(b, "error: benchmark", log.Llongfile|log.Ldate, false, true)
}
func BenchmarkCoLogColorWithFlagsAndFields(b *testing.B) {
doBench(b, "error: benchmark KeyName1='Key Value1'", log.Llongfile|log.Ldate, true, true)
}
func doBench(b *testing.B, message string, flag int, fields bool, colors bool) {
cl := NewCoLog(new(nilWriter), "", flag)
cl.ParseFields(fields)
cl.SetFormatter(&StdFormatter{Flag: flag, Colors: colors})
// fmt.Printf("flags %d \n", cl.formatter.Flags())
logger := cl.NewLogger()
for i := 0; i <= b.N; i++ {
logger.Println(message)
}
}
type nilWriter struct{}
func (nw *nilWriter) Write(p []byte) (n int, err error) { return 0, nil }