mirror of https://github.com/poanetwork/gecko.git
85 lines
1.1 KiB
Go
85 lines
1.1 KiB
Go
// (c) 2019-2020, Ava Labs, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package logging
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
// Level ...
|
|
type Level int
|
|
|
|
// Enum ...
|
|
const (
|
|
Off Level = iota
|
|
Fatal
|
|
Error
|
|
Warn
|
|
Info
|
|
Debug
|
|
Verbo
|
|
)
|
|
|
|
// ToLevel ...
|
|
func ToLevel(l string) (Level, error) {
|
|
switch strings.ToUpper(l) {
|
|
case "OFF":
|
|
return Off, nil
|
|
case "FATAL":
|
|
return Fatal, nil
|
|
case "ERROR":
|
|
return Error, nil
|
|
case "WARN":
|
|
return Warn, nil
|
|
case "INFO":
|
|
return Info, nil
|
|
case "DEBUG":
|
|
return Debug, nil
|
|
case "VERBO":
|
|
return Verbo, nil
|
|
default:
|
|
return Info, fmt.Errorf("unknown log level: %s", l)
|
|
}
|
|
}
|
|
|
|
// Color ...
|
|
func (l Level) Color() Color {
|
|
switch l {
|
|
case Fatal:
|
|
return Red
|
|
case Error:
|
|
return Orange
|
|
case Warn:
|
|
return Yellow
|
|
case Info:
|
|
return White
|
|
case Debug:
|
|
return LightBlue
|
|
case Verbo:
|
|
return LightGreen
|
|
default:
|
|
return Reset
|
|
}
|
|
}
|
|
|
|
func (l Level) String() string {
|
|
switch l {
|
|
case Fatal:
|
|
return "FATAL"
|
|
case Error:
|
|
return "ERROR"
|
|
case Warn:
|
|
return "WARN "
|
|
case Info:
|
|
return "INFO "
|
|
case Debug:
|
|
return "DEBUG"
|
|
case Verbo:
|
|
return "VERBO"
|
|
default:
|
|
return "?????"
|
|
}
|
|
}
|