Merge pull request #862 from krishnasrinivas/probe-fix

Fix logrus error message logging
master
Harshavardhana 9 years ago
commit b45c6020e4
  1. 15
      logger.go
  2. 7
      logger_test.go

@ -18,6 +18,7 @@ package main
import (
"encoding/json"
"reflect"
"github.com/Sirupsen/logrus"
"github.com/minio/minio/pkg/probe"
@ -48,10 +49,16 @@ func errorIf(err *probe.Error, msg string, fields map[string]interface{}) {
if fields == nil {
fields = make(map[string]interface{})
}
fields["error"] = err.ToGoError()
if jsonErr, e := json.Marshal(err); e == nil {
fields["probe"] = string(jsonErr)
fields["Error"] = struct {
Cause string `json:"cause,omitempty"`
Type string `json:"type,omitempty"`
CallTrace []probe.TracePoint `json:"trace,omitempty"`
SysInfo map[string]string `json:"sysinfo,omitempty"`
}{
err.Cause.Error(),
reflect.TypeOf(err.Cause).String(),
err.CallTrace,
err.SysInfo,
}
log.WithFields(fields).Error(msg)
}

@ -42,10 +42,7 @@ func (s *LoggerSuite) TestLogger(c *C) {
c.Assert(err, IsNil)
c.Assert(fields["level"], Equals, "error")
msg, ok := fields["error"]
c.Assert(ok, Equals, true)
c.Assert(msg, Equals, "Fake error")
_, ok = fields["probe"]
msg, ok := fields["Error"]
c.Assert(ok, Equals, true)
c.Assert(msg.(map[string]interface{})["cause"], Equals, "Fake error")
}

Loading…
Cancel
Save