OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / sirupsen / logrus / logger_bench_test.go
1 package logrus
2
3 import (
4         "os"
5         "testing"
6 )
7
8 // smallFields is a small size data set for benchmarking
9 var loggerFields = Fields{
10         "foo":   "bar",
11         "baz":   "qux",
12         "one":   "two",
13         "three": "four",
14 }
15
16 func BenchmarkDummyLogger(b *testing.B) {
17         nullf, err := os.OpenFile("/dev/null", os.O_WRONLY, 0666)
18         if err != nil {
19                 b.Fatalf("%v", err)
20         }
21         defer nullf.Close()
22         doLoggerBenchmark(b, nullf, &TextFormatter{DisableColors: true}, smallFields)
23 }
24
25 func BenchmarkDummyLoggerNoLock(b *testing.B) {
26         nullf, err := os.OpenFile("/dev/null", os.O_WRONLY|os.O_APPEND, 0666)
27         if err != nil {
28                 b.Fatalf("%v", err)
29         }
30         defer nullf.Close()
31         doLoggerBenchmarkNoLock(b, nullf, &TextFormatter{DisableColors: true}, smallFields)
32 }
33
34 func doLoggerBenchmark(b *testing.B, out *os.File, formatter Formatter, fields Fields) {
35         logger := Logger{
36                 Out:       out,
37                 Level:     InfoLevel,
38                 Formatter: formatter,
39         }
40         entry := logger.WithFields(fields)
41         b.RunParallel(func(pb *testing.PB) {
42                 for pb.Next() {
43                         entry.Info("aaa")
44                 }
45         })
46 }
47
48 func doLoggerBenchmarkNoLock(b *testing.B, out *os.File, formatter Formatter, fields Fields) {
49         logger := Logger{
50                 Out:       out,
51                 Level:     InfoLevel,
52                 Formatter: formatter,
53         }
54         logger.SetNoLock()
55         entry := logger.WithFields(fields)
56         b.RunParallel(func(pb *testing.PB) {
57                 for pb.Next() {
58                         entry.Info("aaa")
59                 }
60         })
61 }