33 lines
580 B
Go
33 lines
580 B
Go
package common
|
|
|
|
import (
|
|
"github.com/sirupsen/logrus"
|
|
)
|
|
|
|
type ContextHook struct{}
|
|
|
|
func (h *ContextHook) Levels() []logrus.Level {
|
|
return []logrus.Level{
|
|
logrus.DebugLevel,
|
|
logrus.InfoLevel,
|
|
logrus.WarnLevel,
|
|
logrus.ErrorLevel,
|
|
logrus.FatalLevel,
|
|
logrus.PanicLevel,
|
|
}
|
|
}
|
|
|
|
func (h *ContextHook) Fire(e *logrus.Entry) error {
|
|
if e.Context == nil {
|
|
return nil
|
|
}
|
|
|
|
if val := e.Context.Value(operationIDKeyCtx); val != nil {
|
|
e.Data["operation_id"] = val
|
|
}
|
|
if val := e.Context.Value(externalIDKeyCtx); val != nil {
|
|
e.Data["external_id"] = val
|
|
}
|
|
|
|
return nil
|
|
}
|