23 lines
464 B
Go
23 lines
464 B
Go
package log
|
|
|
|
import "errors"
|
|
|
|
type errorWithLevel struct {
|
|
Level Level
|
|
error
|
|
}
|
|
|
|
// Extracts the most recent error level added to err with [WithLevel], or NotSet.
|
|
func ErrorLevel(err error) Level {
|
|
var withLevel errorWithLevel
|
|
if !errors.As(err, &withLevel) {
|
|
return NotSet
|
|
}
|
|
return withLevel.Level
|
|
}
|
|
|
|
// Adds the error level to err, it can be extracted with [ErrorLevel].
|
|
func WithLevel(level Level, err error) error {
|
|
return errorWithLevel{level, err}
|
|
}
|