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  }