github.com/saferwall/pe@v1.5.2/log/helper.go (about) 1 package log 2 3 import ( 4 "context" 5 "fmt" 6 "os" 7 ) 8 9 // DefaultMessageKey default message key. 10 var DefaultMessageKey = "msg" 11 12 // Option is Helper option. 13 type Option func(*Helper) 14 15 // Helper is a logger helper. 16 type Helper struct { 17 logger Logger 18 msgKey string 19 } 20 21 // WithMessageKey with message key. 22 func WithMessageKey(k string) Option { 23 return func(opts *Helper) { 24 opts.msgKey = k 25 } 26 } 27 28 // NewHelper new a logger helper. 29 func NewHelper(logger Logger, opts ...Option) *Helper { 30 options := &Helper{ 31 msgKey: DefaultMessageKey, // default message key 32 logger: logger, 33 } 34 for _, o := range opts { 35 o(options) 36 } 37 return options 38 } 39 40 // WithContext returns a shallow copy of h with its context changed 41 // to ctx. The provided ctx must be non-nil. 42 func (h *Helper) WithContext(ctx context.Context) *Helper { 43 return &Helper{ 44 msgKey: h.msgKey, 45 logger: WithContext(ctx, h.logger), 46 } 47 } 48 49 // Log Print log by level and keyvals. 50 func (h *Helper) Log(level Level, keyvals ...interface{}) { 51 _ = h.logger.Log(level, keyvals...) 52 } 53 54 // Debug logs a message at debug level. 55 func (h *Helper) Debug(a ...interface{}) { 56 _ = h.logger.Log(LevelDebug, h.msgKey, fmt.Sprint(a...)) 57 } 58 59 // Debugf logs a message at debug level. 60 func (h *Helper) Debugf(format string, a ...interface{}) { 61 _ = h.logger.Log(LevelDebug, h.msgKey, fmt.Sprintf(format, a...)) 62 } 63 64 // Debugw logs a message at debug level. 65 func (h *Helper) Debugw(keyvals ...interface{}) { 66 _ = h.logger.Log(LevelDebug, keyvals...) 67 } 68 69 // Info logs a message at info level. 70 func (h *Helper) Info(a ...interface{}) { 71 _ = h.logger.Log(LevelInfo, h.msgKey, fmt.Sprint(a...)) 72 } 73 74 // Infof logs a message at info level. 75 func (h *Helper) Infof(format string, a ...interface{}) { 76 _ = h.logger.Log(LevelInfo, h.msgKey, fmt.Sprintf(format, a...)) 77 } 78 79 // Infow logs a message at info level. 80 func (h *Helper) Infow(keyvals ...interface{}) { 81 _ = h.logger.Log(LevelInfo, keyvals...) 82 } 83 84 // Warn logs a message at warn level. 85 func (h *Helper) Warn(a ...interface{}) { 86 _ = h.logger.Log(LevelWarn, h.msgKey, fmt.Sprint(a...)) 87 } 88 89 // Warnf logs a message at warnf level. 90 func (h *Helper) Warnf(format string, a ...interface{}) { 91 _ = h.logger.Log(LevelWarn, h.msgKey, fmt.Sprintf(format, a...)) 92 } 93 94 // Warnw logs a message at warnf level. 95 func (h *Helper) Warnw(keyvals ...interface{}) { 96 _ = h.logger.Log(LevelWarn, keyvals...) 97 } 98 99 // Error logs a message at error level. 100 func (h *Helper) Error(a ...interface{}) { 101 _ = h.logger.Log(LevelError, h.msgKey, fmt.Sprint(a...)) 102 } 103 104 // Errorf logs a message at error level. 105 func (h *Helper) Errorf(format string, a ...interface{}) { 106 _ = h.logger.Log(LevelError, h.msgKey, fmt.Sprintf(format, a...)) 107 } 108 109 // Errorw logs a message at error level. 110 func (h *Helper) Errorw(keyvals ...interface{}) { 111 _ = h.logger.Log(LevelError, keyvals...) 112 } 113 114 // Fatal logs a message at fatal level. 115 func (h *Helper) Fatal(a ...interface{}) { 116 _ = h.logger.Log(LevelFatal, h.msgKey, fmt.Sprint(a...)) 117 os.Exit(1) 118 } 119 120 // Fatalf logs a message at fatal level. 121 func (h *Helper) Fatalf(format string, a ...interface{}) { 122 _ = h.logger.Log(LevelFatal, h.msgKey, fmt.Sprintf(format, a...)) 123 os.Exit(1) 124 } 125 126 // Fatalw logs a message at fatal level. 127 func (h *Helper) Fatalw(keyvals ...interface{}) { 128 _ = h.logger.Log(LevelFatal, keyvals...) 129 os.Exit(1) 130 }