package hlog import ( "github.com/pkg/errors" "github.com/rs/zerolog" ) // Level is an alias for zerolog.Level, representing the severity of a log message. type Level = zerolog.Level // LogLevel converts a string to a Level value. // // Valid level strings (case-sensitive): // - "trace": Most verbose, for very detailed debugging // - "debug": Detailed debugging information // - "info": General informational messages // - "warn": Warning messages for potentially harmful situations // - "error": Error messages for error events // - "fatal": Fatal messages that will exit the application // - "panic": Panic messages that will panic the application // // Returns an error if the provided string is not a valid log level. func LogLevel(level string) (Level, error) { levels := map[string]zerolog.Level{ "trace": zerolog.TraceLevel, "debug": zerolog.DebugLevel, "info": zerolog.InfoLevel, "warn": zerolog.WarnLevel, "error": zerolog.ErrorLevel, "fatal": zerolog.FatalLevel, "panic": zerolog.PanicLevel, } logLevel, valid := levels[level] if !valid { return 0, errors.New("Invalid log level specified.") } return logLevel, nil }