39 lines
1.1 KiB
Go
39 lines
1.1 KiB
Go
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
|
|
}
|