errors.go 526 B

1234567891011121314151617181920212223242526
  1. package log
  2. import "errors"
  3. type errorWithLevel struct {
  4. Level Level
  5. error
  6. }
  7. func (me errorWithLevel) Unwrap() error {
  8. return me.error
  9. }
  10. // Extracts the most recent error level added to err with [WithLevel], or NotSet.
  11. func ErrorLevel(err error) Level {
  12. var withLevel errorWithLevel
  13. if !errors.As(err, &withLevel) {
  14. return NotSet
  15. }
  16. return withLevel.Level
  17. }
  18. // Adds the error level to err, it can be extracted with [ErrorLevel].
  19. func WithLevel(level Level, err error) error {
  20. return errorWithLevel{level, err}
  21. }