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  }