github.com/saferwall/pe@v1.5.2/log/helper_test.go (about) 1 package log 2 3 import ( 4 "context" 5 "io" 6 "os" 7 "testing" 8 ) 9 10 func TestHelper(t *testing.T) { 11 logger := With(DefaultLogger, "ts", DefaultTimestamp, "caller", DefaultCaller) 12 log := NewHelper(logger) 13 14 log.Log(LevelDebug, "msg", "test debug") 15 log.Debug("test debug") 16 log.Debugf("test %s", "debug") 17 log.Debugw("log", "test debug") 18 19 log.Warn("test warn") 20 log.Warnf("test %s", "warn") 21 log.Warnw("log", "test warn") 22 } 23 24 func TestHelperWithMsgKey(t *testing.T) { 25 logger := With(DefaultLogger, "ts", DefaultTimestamp, "caller", DefaultCaller) 26 log := NewHelper(logger, WithMessageKey("message")) 27 log.Debugf("test %s", "debug") 28 log.Debugw("log", "test debug") 29 } 30 31 func TestHelperLevel(t *testing.T) { 32 log := NewHelper(DefaultLogger) 33 log.Debug("test debug") 34 log.Info("test info") 35 log.Infof("test %s", "info") 36 log.Warn("test warn") 37 log.Error("test error") 38 log.Errorf("test %s", "error") 39 log.Errorw("log", "test error") 40 } 41 42 func BenchmarkHelperPrint(b *testing.B) { 43 log := NewHelper(NewStdLogger(io.Discard)) 44 for i := 0; i < b.N; i++ { 45 log.Debug("test") 46 } 47 } 48 49 func BenchmarkHelperPrintf(b *testing.B) { 50 log := NewHelper(NewStdLogger(io.Discard)) 51 for i := 0; i < b.N; i++ { 52 log.Debugf("%s", "test") 53 } 54 } 55 56 func BenchmarkHelperPrintw(b *testing.B) { 57 log := NewHelper(NewStdLogger(io.Discard)) 58 for i := 0; i < b.N; i++ { 59 log.Debugw("key", "value") 60 } 61 } 62 63 type traceKey struct{} 64 65 func TestContext(t *testing.T) { 66 logger := With(NewStdLogger(os.Stdout), 67 "trace", Trace(), 68 ) 69 log := NewHelper(logger) 70 ctx := context.WithValue(context.Background(), traceKey{}, "2233") 71 log.WithContext(ctx).Info("got trace!") 72 } 73 74 func Trace() Valuer { 75 return func(ctx context.Context) interface{} { 76 s := ctx.Value(traceKey{}).(string) 77 return s 78 } 79 }