Add a method Exit on Logger that calls os.Exit or alternate exit function.

This keeps backward compatibility for static declaration of logger
that does not specify `ExitFunc` field.
This commit is contained in:
Albert Salim
2018-10-10 21:54:15 +08:00
parent 2be620216a
commit 99bc300c8d
5 changed files with 26 additions and 25 deletions
+7 -6
View File
@@ -72,13 +72,14 @@ func TestLoggingWithHooksRace(t *testing.T) {
assert.Equal(100, len(entries))
}
func TestFatalWithPanic(t *testing.T) {
func TestFatalWithAlternateExit(t *testing.T) {
assert := assert.New(t)
logger, hook := NewNullLogger(FatalPanics)
logger, hook := NewNullLogger()
logger.ExitFunc = func(code int) {}
assert.Nil(hook.LastEntry())
assert.Equal(0, len(hook.Entries))
assert.Panics(func() { logger.Fatal("something went wrong") })
logger.Fatal("something went very wrong")
assert.Equal(logrus.FatalLevel, hook.LastEntry().Level)
assert.Equal("something went very wrong", hook.LastEntry().Message)
assert.Equal(1, len(hook.Entries))
}