debian-forge-composer/internal/common/context_hook.go
Lukas Zapletal 5ce8f65a58 cloudapi: propagate operation/external id
Signed-off-by: Lukas Zapletal <lzap+git@redhat.com>
2024-06-25 13:58:53 +02:00

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
}