package logger // Level means logger level type Level int8 const ( // TraceLevel level usually used to find bugs, very verbose TraceLevel Level = iota - 2 // DebugLevel level used only when enabled debugging DebugLevel // InfoLevel level used for general info about what's going on inside the application InfoLevel // WarnLevel level used for non-critical entries WarnLevel // ErrorLevel level used for errors that should definitely be noted ErrorLevel // FatalLevel level used for critical errors and then calls `os.Exit(1)` FatalLevel ) // String returns logger level string representation func (l Level) String() string { switch l { case TraceLevel: return "trace" case DebugLevel: return "debug" case InfoLevel: return "info" case WarnLevel: return "warn" case ErrorLevel: return "error" case FatalLevel: return "fatal" } return "info" } // Enabled returns true if the given level is at or above this level. func (l Level) Enabled(lvl Level) bool { return lvl >= l } // ParseLevel converts a level string into a logger Level value. // returns an InfoLevel if the input string does not match known values. func ParseLevel(lvl string) Level { switch lvl { case TraceLevel.String(): return TraceLevel case DebugLevel.String(): return DebugLevel case InfoLevel.String(): return InfoLevel case WarnLevel.String(): return WarnLevel case ErrorLevel.String(): return ErrorLevel case FatalLevel.String(): return FatalLevel } return InfoLevel }