github.com/goravel/framework@v1.13.9/contracts/log/level.go (about)

     1  package log
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	"github.com/sirupsen/logrus"
     8  )
     9  
    10  type Level logrus.Level
    11  
    12  // Convert the Level to a string. E.g. PanicLevel becomes "panic".
    13  func (level Level) String() string {
    14  	if b, err := level.MarshalText(); err == nil {
    15  		return string(b)
    16  	} else {
    17  		return "unknown"
    18  	}
    19  }
    20  
    21  // ParseLevel takes a string level and returns the Logrus log level constant.
    22  func ParseLevel(lvl string) (Level, error) {
    23  	switch strings.ToLower(lvl) {
    24  	case "panic":
    25  		return PanicLevel, nil
    26  	case "fatal":
    27  		return FatalLevel, nil
    28  	case "error":
    29  		return ErrorLevel, nil
    30  	case "warn", "warning":
    31  		return WarningLevel, nil
    32  	case "info":
    33  		return InfoLevel, nil
    34  	case "debug":
    35  		return DebugLevel, nil
    36  	}
    37  
    38  	var l Level
    39  	return l, fmt.Errorf("not a valid logrus Level: %q", lvl)
    40  }
    41  
    42  // UnmarshalText implements encoding.TextUnmarshaler.
    43  func (level *Level) UnmarshalText(text []byte) error {
    44  	l, err := ParseLevel(string(text))
    45  	if err != nil {
    46  		return err
    47  	}
    48  
    49  	*level = l
    50  
    51  	return nil
    52  }
    53  
    54  func (level Level) MarshalText() ([]byte, error) {
    55  	switch level {
    56  	case DebugLevel:
    57  		return []byte("debug"), nil
    58  	case InfoLevel:
    59  		return []byte("info"), nil
    60  	case WarningLevel:
    61  		return []byte("warning"), nil
    62  	case ErrorLevel:
    63  		return []byte("error"), nil
    64  	case FatalLevel:
    65  		return []byte("fatal"), nil
    66  	case PanicLevel:
    67  		return []byte("panic"), nil
    68  	}
    69  
    70  	return nil, fmt.Errorf("not a valid logrus level %d", level)
    71  }