diff --git a/config_test.go b/config_test.go index 1a460c3..046faec 100644 --- a/config_test.go +++ b/config_test.go @@ -3,7 +3,7 @@ package logri_test import ( "bytes" - . "github.com/iancmcc/logri" + . "github.com/zenoss/logri" . "gopkg.in/check.v1" ) diff --git a/hooks.go b/hooks.go new file mode 100644 index 0000000..65488e2 --- /dev/null +++ b/hooks.go @@ -0,0 +1,31 @@ +package logri + +import "github.com/Sirupsen/logrus" + +// LoggerHook is a Logrus hook that adds the logger name as a field to the entry +type LoggerHook struct { + loggerName string +} + +// Levels satisfies the logrus.Hook interface +func (hook LoggerHook) Levels() []logrus.Level { + return logrus.AllLevels +} + +// Fire satisfies the logrus.Hook interface +func (hook LoggerHook) Fire(entry *logrus.Entry) error { + entry.Data["logger"] = hook.loggerName + return nil +} + +func copyHooksExceptLoggerHook(orig logrus.LevelHooks) logrus.LevelHooks { + result := logrus.LevelHooks{} + for level, hooks := range orig { + for _, hook := range hooks { + if _, ok := hook.(LoggerHook); !ok { + result[level] = append(result[level], hook) + } + } + } + return result +} diff --git a/logger.go b/logger.go index 7886566..9a920b7 100644 --- a/logger.go +++ b/logger.go @@ -102,7 +102,7 @@ func (l *Logger) GetChild(name string) *Logger { logger: &logrus.Logger{ Out: parent.logger.Out, Formatter: parent.logger.Formatter, - Hooks: CopyHooksExceptLoggerHook(parent.logger.Hooks), + Hooks: copyHooksExceptLoggerHook(parent.logger.Hooks), Level: parent.logger.Level, }, } diff --git a/logger_test.go b/logger_test.go index 2ba9a0c..f4934c4 100644 --- a/logger_test.go +++ b/logger_test.go @@ -4,7 +4,7 @@ import ( "bytes" "github.com/Sirupsen/logrus" - . "github.com/iancmcc/logri" + . "github.com/zenoss/logri" . "gopkg.in/check.v1" ) diff --git a/logri_test.go b/logri_test.go index b16a307..5b5cdab 100644 --- a/logri_test.go +++ b/logri_test.go @@ -7,7 +7,7 @@ import ( "github.com/Sirupsen/logrus" "github.com/Sirupsen/logrus/hooks/test" - . "github.com/iancmcc/logri" + . "github.com/zenoss/logri" . "gopkg.in/check.v1" ) diff --git a/output_test.go b/output_test.go index 72899c8..fdd4e53 100644 --- a/output_test.go +++ b/output_test.go @@ -5,7 +5,7 @@ import ( "os" "path/filepath" - . "github.com/iancmcc/logri" + . "github.com/zenoss/logri" . "gopkg.in/check.v1" )