override.go 419 B

12345678910111213141516171819
  1. package log
  2. import (
  3. "context"
  4. )
  5. type overrideLevelKey struct{}
  6. func ContextWithOverrideLevel(ctx context.Context, level Level) context.Context {
  7. return context.WithValue(ctx, (*overrideLevelKey)(nil), level)
  8. }
  9. func OverrideLevelFromContext(origin Level, ctx context.Context) Level {
  10. level, loaded := ctx.Value((*overrideLevelKey)(nil)).(Level)
  11. if !loaded || origin > level {
  12. return origin
  13. }
  14. return level
  15. }