github.com/tickoalcantara12/micro/v3@v3.0.0-20221007104245-9d75b9bcbab9/service/logger/helper.go (about)

     1  // Licensed under the Apache License, Version 2.0 (the "License");
     2  // you may not use this file except in compliance with the License.
     3  // You may obtain a copy of the License at
     4  //
     5  //     https://www.apache.org/licenses/LICENSE-2.0
     6  //
     7  // Unless required by applicable law or agreed to in writing, software
     8  // distributed under the License is distributed on an "AS IS" BASIS,
     9  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    10  // See the License for the specific language governing permissions and
    11  // limitations under the License.
    12  //
    13  // Original source: github.com/micro/go-micro/v3/logger/helper.go
    14  
    15  package logger
    16  
    17  import (
    18  	"os"
    19  )
    20  
    21  type Helper struct {
    22  	Logger
    23  	fields map[string]interface{}
    24  }
    25  
    26  func NewHelper(log Logger) *Helper {
    27  	return &Helper{Logger: log}
    28  }
    29  
    30  func (h *Helper) Info(args ...interface{}) {
    31  	if !h.Logger.Options().Level.Enabled(InfoLevel) {
    32  		return
    33  	}
    34  	h.Logger.Fields(h.fields).Log(InfoLevel, args...)
    35  }
    36  
    37  func (h *Helper) Infof(template string, args ...interface{}) {
    38  	if !h.Logger.Options().Level.Enabled(InfoLevel) {
    39  		return
    40  	}
    41  	h.Logger.Fields(h.fields).Logf(InfoLevel, template, args...)
    42  }
    43  
    44  func (h *Helper) Trace(args ...interface{}) {
    45  	if !h.Logger.Options().Level.Enabled(TraceLevel) {
    46  		return
    47  	}
    48  	h.Logger.Fields(h.fields).Log(TraceLevel, args...)
    49  }
    50  
    51  func (h *Helper) Tracef(template string, args ...interface{}) {
    52  	if !h.Logger.Options().Level.Enabled(TraceLevel) {
    53  		return
    54  	}
    55  	h.Logger.Fields(h.fields).Logf(TraceLevel, template, args...)
    56  }
    57  
    58  func (h *Helper) Debug(args ...interface{}) {
    59  	if !h.Logger.Options().Level.Enabled(DebugLevel) {
    60  		return
    61  	}
    62  	h.Logger.Fields(h.fields).Log(DebugLevel, args...)
    63  }
    64  
    65  func (h *Helper) Debugf(template string, args ...interface{}) {
    66  	if !h.Logger.Options().Level.Enabled(DebugLevel) {
    67  		return
    68  	}
    69  	h.Logger.Fields(h.fields).Logf(DebugLevel, template, args...)
    70  }
    71  
    72  func (h *Helper) Warn(args ...interface{}) {
    73  	if !h.Logger.Options().Level.Enabled(WarnLevel) {
    74  		return
    75  	}
    76  	h.Logger.Fields(h.fields).Log(WarnLevel, args...)
    77  }
    78  
    79  func (h *Helper) Warnf(template string, args ...interface{}) {
    80  	if !h.Logger.Options().Level.Enabled(WarnLevel) {
    81  		return
    82  	}
    83  	h.Logger.Fields(h.fields).Logf(WarnLevel, template, args...)
    84  }
    85  
    86  func (h *Helper) Error(args ...interface{}) {
    87  	if !h.Logger.Options().Level.Enabled(ErrorLevel) {
    88  		return
    89  	}
    90  	h.Logger.Fields(h.fields).Log(ErrorLevel, args...)
    91  }
    92  
    93  func (h *Helper) Errorf(template string, args ...interface{}) {
    94  	if !h.Logger.Options().Level.Enabled(ErrorLevel) {
    95  		return
    96  	}
    97  	h.Logger.Fields(h.fields).Logf(ErrorLevel, template, args...)
    98  }
    99  
   100  func (h *Helper) Fatal(args ...interface{}) {
   101  	if !h.Logger.Options().Level.Enabled(FatalLevel) {
   102  		return
   103  	}
   104  	h.Logger.Fields(h.fields).Log(FatalLevel, args...)
   105  	os.Exit(1)
   106  }
   107  
   108  func (h *Helper) Fatalf(template string, args ...interface{}) {
   109  	if !h.Logger.Options().Level.Enabled(FatalLevel) {
   110  		return
   111  	}
   112  	h.Logger.Fields(h.fields).Logf(FatalLevel, template, args...)
   113  	os.Exit(1)
   114  }
   115  
   116  func (h *Helper) WithError(err error) *Helper {
   117  	fields := copyFields(h.fields)
   118  	fields["error"] = err
   119  	return &Helper{Logger: h.Logger, fields: fields}
   120  }
   121  
   122  func (h *Helper) WithFields(fields map[string]interface{}) *Helper {
   123  	nfields := copyFields(fields)
   124  	for k, v := range h.fields {
   125  		nfields[k] = v
   126  	}
   127  	return &Helper{Logger: h.Logger, fields: nfields}
   128  }