logger improvements
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
parent
81649d51e1
commit
6dc7e792c8
@ -17,43 +17,79 @@ type Logger interface {
|
|||||||
// Fields set fields to always be logged
|
// Fields set fields to always be logged
|
||||||
Fields(fields map[string]interface{}) Logger
|
Fields(fields map[string]interface{}) Logger
|
||||||
// Info level message
|
// Info level message
|
||||||
Info(msg string, args ...interface{})
|
Info(args ...interface{})
|
||||||
// Trace level message
|
// Trace level message
|
||||||
Trace(msg string, args ...interface{})
|
Trace(args ...interface{})
|
||||||
// Debug level message
|
// Debug level message
|
||||||
Debug(msg string, args ...interface{})
|
Debug(args ...interface{})
|
||||||
// Warn level message
|
// Warn level message
|
||||||
Warn(msg string, args ...interface{})
|
Warn(args ...interface{})
|
||||||
// Error level message
|
// Error level message
|
||||||
Error(msg string, args ...interface{})
|
Error(args ...interface{})
|
||||||
// Fatal level message
|
// Fatal level message
|
||||||
Fatal(msg string, args ...interface{})
|
Fatal(args ...interface{})
|
||||||
|
// Infof level message
|
||||||
|
Infof(msg string, args ...interface{})
|
||||||
|
// Tracef level message
|
||||||
|
Tracef(msg string, args ...interface{})
|
||||||
|
// Debug level message
|
||||||
|
Debugf(msg string, args ...interface{})
|
||||||
|
// Warn level message
|
||||||
|
Warnf(msg string, args ...interface{})
|
||||||
|
// Error level message
|
||||||
|
Errorf(msg string, args ...interface{})
|
||||||
|
// Fatal level message
|
||||||
|
Fatalf(msg string, args ...interface{})
|
||||||
// String returns the name of logger
|
// String returns the name of logger
|
||||||
String() string
|
String() string
|
||||||
}
|
}
|
||||||
|
|
||||||
func Info(msg string, args ...interface{}) {
|
func Info(args ...interface{}) {
|
||||||
DefaultLogger.Info(msg, args...)
|
DefaultLogger.Info(args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Error(msg string, args ...interface{}) {
|
func Error(args ...interface{}) {
|
||||||
DefaultLogger.Error(msg, args...)
|
DefaultLogger.Error(args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Debug(msg string, args ...interface{}) {
|
func Debug(args ...interface{}) {
|
||||||
DefaultLogger.Debug(msg, args...)
|
DefaultLogger.Debug(args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Warn(msg string, args ...interface{}) {
|
func Warn(args ...interface{}) {
|
||||||
DefaultLogger.Warn(msg, args...)
|
DefaultLogger.Warn(args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Trace(msg string, args ...interface{}) {
|
func Trace(args ...interface{}) {
|
||||||
DefaultLogger.Trace(msg, args...)
|
DefaultLogger.Trace(args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Fatal(msg string, args ...interface{}) {
|
func Fatal(args ...interface{}) {
|
||||||
DefaultLogger.Fatal(msg, args...)
|
DefaultLogger.Fatal(args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Infof(msg string, args ...interface{}) {
|
||||||
|
DefaultLogger.Infof(msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Errorf(msg string, args ...interface{}) {
|
||||||
|
DefaultLogger.Errorf(msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Debugf(msg string, args ...interface{}) {
|
||||||
|
DefaultLogger.Debugf(msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Warnf(msg string, args ...interface{}) {
|
||||||
|
DefaultLogger.Warnf(msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Tracef(msg string, args ...interface{}) {
|
||||||
|
DefaultLogger.Tracef(msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Fatalf(msg string, args ...interface{}) {
|
||||||
|
DefaultLogger.Fatalf(msg, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func V(level Level) bool {
|
func V(level Level) bool {
|
||||||
|
@ -12,4 +12,5 @@ func TestLogger(t *testing.T) {
|
|||||||
l.Trace("trace_msg1")
|
l.Trace("trace_msg1")
|
||||||
l.Warn("warn_msg1")
|
l.Warn("warn_msg1")
|
||||||
l.Fields(map[string]interface{}{"error": "test"}).Info("error message")
|
l.Fields(map[string]interface{}{"error": "test"}).Info("error message")
|
||||||
|
l.Warn("first", " ", "second")
|
||||||
}
|
}
|
||||||
|
@ -84,32 +84,80 @@ func logCallerfilePath(loggingFilePath string) string {
|
|||||||
return loggingFilePath[idx+1:]
|
return loggingFilePath[idx+1:]
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *defaultLogger) Info(msg string, args ...interface{}) {
|
func (l *defaultLogger) Info(args ...interface{}) {
|
||||||
l.log(InfoLevel, msg, args...)
|
l.log(InfoLevel, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *defaultLogger) Error(msg string, args ...interface{}) {
|
func (l *defaultLogger) Error(args ...interface{}) {
|
||||||
l.log(ErrorLevel, msg, args...)
|
l.log(ErrorLevel, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *defaultLogger) Debug(msg string, args ...interface{}) {
|
func (l *defaultLogger) Debug(args ...interface{}) {
|
||||||
l.log(DebugLevel, msg, args...)
|
l.log(DebugLevel, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *defaultLogger) Warn(msg string, args ...interface{}) {
|
func (l *defaultLogger) Warn(args ...interface{}) {
|
||||||
l.log(WarnLevel, msg, args...)
|
l.log(WarnLevel, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *defaultLogger) Trace(msg string, args ...interface{}) {
|
func (l *defaultLogger) Trace(args ...interface{}) {
|
||||||
l.log(TraceLevel, msg, args...)
|
l.log(TraceLevel, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *defaultLogger) Fatal(msg string, args ...interface{}) {
|
func (l *defaultLogger) Fatal(args ...interface{}) {
|
||||||
l.log(FatalLevel, msg, args...)
|
l.log(FatalLevel, args...)
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *defaultLogger) log(level Level, msg string, args ...interface{}) {
|
func (l *defaultLogger) Infof(msg string, args ...interface{}) {
|
||||||
|
l.logf(InfoLevel, msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *defaultLogger) Errorf(msg string, args ...interface{}) {
|
||||||
|
l.logf(ErrorLevel, msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *defaultLogger) Debugf(msg string, args ...interface{}) {
|
||||||
|
l.logf(DebugLevel, msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *defaultLogger) Warnf(msg string, args ...interface{}) {
|
||||||
|
l.logf(WarnLevel, msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *defaultLogger) Tracef(msg string, args ...interface{}) {
|
||||||
|
l.logf(TraceLevel, msg, args...)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *defaultLogger) Fatalf(msg string, args ...interface{}) {
|
||||||
|
l.logf(FatalLevel, msg, args...)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *defaultLogger) log(level Level, args ...interface{}) {
|
||||||
|
if !l.V(level) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
l.RLock()
|
||||||
|
fields := copyFields(l.opts.Fields)
|
||||||
|
l.RUnlock()
|
||||||
|
|
||||||
|
fields["level"] = level.String()
|
||||||
|
|
||||||
|
if _, file, line, ok := runtime.Caller(l.opts.CallerSkipCount); ok {
|
||||||
|
fields["caller"] = fmt.Sprintf("%s:%d", logCallerfilePath(file), line)
|
||||||
|
}
|
||||||
|
|
||||||
|
fields["timestamp"] = time.Now().Format("2006-01-02 15:04:05")
|
||||||
|
fields["msg"] = fmt.Sprint(args...)
|
||||||
|
|
||||||
|
l.RLock()
|
||||||
|
_ = l.enc.Encode(fields)
|
||||||
|
l.RUnlock()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (l *defaultLogger) logf(level Level, msg string, args ...interface{}) {
|
||||||
if !l.V(level) {
|
if !l.V(level) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@ -125,13 +173,11 @@ func (l *defaultLogger) log(level Level, msg string, args ...interface{}) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fields["timestamp"] = time.Now().Format("2006-01-02 15:04:05")
|
fields["timestamp"] = time.Now().Format("2006-01-02 15:04:05")
|
||||||
if len(msg) > 0 {
|
|
||||||
if len(args) > 0 {
|
if len(args) > 0 {
|
||||||
fields["msg"] = fmt.Sprintf(msg, args...)
|
fields["msg"] = fmt.Sprintf(msg, args...)
|
||||||
} else {
|
} else {
|
||||||
fields["msg"] = msg
|
fields["msg"] = msg
|
||||||
}
|
}
|
||||||
}
|
|
||||||
l.RLock()
|
l.RLock()
|
||||||
_ = l.enc.Encode(fields)
|
_ = l.enc.Encode(fields)
|
||||||
l.RUnlock()
|
l.RUnlock()
|
||||||
|
Loading…
Reference in New Issue
Block a user