forked from toolshed/abra
		
	We were running behind and there were quite some deprecations to update. This was mostly in the upstream copy/pasta package but seems quite minimal.
		
			
				
	
	
		
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package log
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 	"fmt"
 | |
| 	"math"
 | |
| 	"strings"
 | |
| )
 | |
| 
 | |
| // Level is a logging level.
 | |
| type Level int
 | |
| 
 | |
| const (
 | |
| 	// DebugLevel is the debug level.
 | |
| 	DebugLevel Level = -4
 | |
| 	// InfoLevel is the info level.
 | |
| 	InfoLevel Level = 0
 | |
| 	// WarnLevel is the warn level.
 | |
| 	WarnLevel Level = 4
 | |
| 	// ErrorLevel is the error level.
 | |
| 	ErrorLevel Level = 8
 | |
| 	// FatalLevel is the fatal level.
 | |
| 	FatalLevel Level = 12
 | |
| 	// noLevel is used with log.Print.
 | |
| 	noLevel Level = math.MaxInt
 | |
| )
 | |
| 
 | |
| // String returns the string representation of the level.
 | |
| func (l Level) String() string {
 | |
| 	switch l { //nolint:exhaustive
 | |
| 	case DebugLevel:
 | |
| 		return "debug"
 | |
| 	case InfoLevel:
 | |
| 		return "info"
 | |
| 	case WarnLevel:
 | |
| 		return "warn"
 | |
| 	case ErrorLevel:
 | |
| 		return "error"
 | |
| 	case FatalLevel:
 | |
| 		return "fatal"
 | |
| 	default:
 | |
| 		return ""
 | |
| 	}
 | |
| }
 | |
| 
 | |
| // ErrInvalidLevel is an error returned when parsing an invalid level string.
 | |
| var ErrInvalidLevel = errors.New("invalid level")
 | |
| 
 | |
| // ParseLevel converts level in string to Level type. Default level is InfoLevel.
 | |
| func ParseLevel(level string) (Level, error) {
 | |
| 	switch strings.ToLower(level) {
 | |
| 	case DebugLevel.String():
 | |
| 		return DebugLevel, nil
 | |
| 	case InfoLevel.String():
 | |
| 		return InfoLevel, nil
 | |
| 	case WarnLevel.String():
 | |
| 		return WarnLevel, nil
 | |
| 	case ErrorLevel.String():
 | |
| 		return ErrorLevel, nil
 | |
| 	case FatalLevel.String():
 | |
| 		return FatalLevel, nil
 | |
| 	default:
 | |
| 		return 0, fmt.Errorf("%w: %q", ErrInvalidLevel, level)
 | |
| 	}
 | |
| }
 |