Implement WithError(err) in exported, fixed doco.

This commit is contained in:
Joern Barthel 2015-05-19 19:50:55 +02:00
parent c24d0555d7
commit e3e5de11c4
3 changed files with 18 additions and 4 deletions

View File

@ -8,7 +8,7 @@ import (
"time" "time"
) )
// Defines the key when adding error using WithError. // Defines the key when adding errors using WithError.
var ErrorKey = "error" var ErrorKey = "error"
// An entry is the final or intermediate Logrus logging entry. It contains all // An entry is the final or intermediate Logrus logging entry. It contains all
@ -56,7 +56,7 @@ func (entry *Entry) String() (string, error) {
return reader.String(), err return reader.String(), err
} }
// Add an error as single field (with key "error") to the Entry. // Add an error as single field (using the key defined in ErrorKey) to the Entry.
func (entry *Entry) WithError(err error) *Entry { func (entry *Entry) WithError(err error) *Entry {
return entry.WithField(ErrorKey, err) return entry.WithField(ErrorKey, err)
} }

View File

@ -10,16 +10,25 @@ import (
func TestEntryWithError(t *testing.T) { func TestEntryWithError(t *testing.T) {
assert := assert.New(t)
defer func() {
ErrorKey = "error"
}()
err := fmt.Errorf("kaboom at layer %d", 4711) err := fmt.Errorf("kaboom at layer %d", 4711)
assert.Equal(err, WithError(err).Data["error"])
logger := New() logger := New()
logger.Out = &bytes.Buffer{} logger.Out = &bytes.Buffer{}
entry := NewEntry(logger) entry := NewEntry(logger)
assert.Equal(t, err, entry.WithError(err).Data["error"]) assert.Equal(err, entry.WithError(err).Data["error"])
ErrorKey = "err" ErrorKey = "err"
assert.Equal(t, err, entry.WithError(err).Data["err"])
assert.Equal(err, entry.WithError(err).Data["err"])
} }

View File

@ -48,6 +48,11 @@ func AddHook(hook Hook) {
std.Hooks.Add(hook) std.Hooks.Add(hook)
} }
// WithError creates an entry from the standard logger and adds an error to it, using the value defined in ErrorKey as key.
func WithError(err error) *Entry {
return std.WithField(ErrorKey, err)
}
// WithField creates an entry from the standard logger and adds a field to // WithField creates an entry from the standard logger and adds a field to
// it. If you want multiple fields, use `WithFields`. // it. If you want multiple fields, use `WithFields`.
// //