diff --git a/fs/log.go b/fs/log.go index 31fe6c2a0..68f09e9cc 100644 --- a/fs/log.go +++ b/fs/log.go @@ -77,25 +77,33 @@ var LogPrint = func(level LogLevel, text string) { // LogPrintf produces a log string from the arguments passed in func LogPrintf(level LogLevel, o interface{}, text string, args ...interface{}) { out := fmt.Sprintf(text, args...) - if o != nil { - out = fmt.Sprintf("%v: %s", o, out) - } + if Config.UseJSONLog { + fields := logrus.Fields{} + if o != nil { + fields = logrus.Fields{ + "object": fmt.Sprintf("%+v", o), + "objectType": fmt.Sprintf("%T", o), + } + } switch level { case LogLevelDebug: - logrus.Debug(out) + logrus.WithFields(fields).Debug(out) case LogLevelInfo: - logrus.Info(out) + logrus.WithFields(fields).Info(out) case LogLevelNotice, LogLevelWarning: - logrus.Warn(out) + logrus.WithFields(fields).Warn(out) case LogLevelError: - logrus.Error(out) + logrus.WithFields(fields).Error(out) case LogLevelCritical: - logrus.Fatal(out) + logrus.WithFields(fields).Fatal(out) case LogLevelEmergency, LogLevelAlert: - logrus.Panic(out) + logrus.WithFields(fields).Panic(out) } } else { + if o != nil { + out = fmt.Sprintf("%v: %s", o, out) + } LogPrint(level, out) } }