diff --git a/logger.go b/logger.go index 3cef3e5ea..6e2b238ca 100644 --- a/logger.go +++ b/logger.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) } diff --git a/logger_test.go b/logger_test.go index a9dc7f3c5..09c654218 100644 --- a/logger_test.go +++ b/logger_test.go @@ -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") }