diff options
author | Daniel Baumann <daniel@debian.org> | 2025-01-24 09:00:09 +0100 |
---|---|---|
committer | Daniel Baumann <daniel@debian.org> | 2025-01-24 09:00:09 +0100 |
commit | 4bf4dabd48aa70da3699b9a023f22689645d24f4 (patch) | |
tree | ed8175444649e71c0ed0e5f1d30101786ca2473e /pkg/common/logger.go | |
parent | Initial commit. (diff) | |
download | forgejo-act-debian.tar.xz forgejo-act-debian.zip |
Adding upstream version 1.24.0.HEADupstream/1.24.0upstreamdebian
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'pkg/common/logger.go')
-rw-r--r-- | pkg/common/logger.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/pkg/common/logger.go b/pkg/common/logger.go new file mode 100644 index 0000000..74fc96d --- /dev/null +++ b/pkg/common/logger.go @@ -0,0 +1,48 @@ +package common + +import ( + "context" + + "github.com/sirupsen/logrus" +) + +type loggerContextKey string + +const loggerContextKeyVal = loggerContextKey("logrus.FieldLogger") + +// Logger returns the appropriate logger for current context +func Logger(ctx context.Context) logrus.FieldLogger { + val := ctx.Value(loggerContextKeyVal) + if val != nil { + if logger, ok := val.(logrus.FieldLogger); ok { + return logger + } + } + return logrus.StandardLogger() +} + +// WithLogger adds a value to the context for the logger +func WithLogger(ctx context.Context, logger logrus.FieldLogger) context.Context { + return context.WithValue(ctx, loggerContextKeyVal, logger) +} + +type loggerHookKey string + +const loggerHookKeyVal = loggerHookKey("logrus.Hook") + +// LoggerHook returns the appropriate logger hook for current context +// the hook affects job logger, not global logger +func LoggerHook(ctx context.Context) logrus.Hook { + val := ctx.Value(loggerHookKeyVal) + if val != nil { + if hook, ok := val.(logrus.Hook); ok { + return hook + } + } + return nil +} + +// WithLoggerHook adds a value to the context for the logger hook +func WithLoggerHook(ctx context.Context, hook logrus.Hook) context.Context { + return context.WithValue(ctx, loggerHookKeyVal, hook) +} |