work on eia client
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
package util
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
@ -18,57 +19,61 @@ func SetLogger(cmd *cobra.Command, logger *zerolog.Logger) {
|
||||
}
|
||||
|
||||
func GetLogLevel(cmd *cobra.Command) *zerolog.Level {
|
||||
var level zerolog.Level
|
||||
var err error
|
||||
if envLevel := os.Getenv(ENV_LOG_LEVEL); envLevel != "" {
|
||||
level, err = zerolog.ParseLevel(envLevel)
|
||||
if err != nil {
|
||||
Logger(cmd).Err(err).
|
||||
Str("envLogLevel", envLevel).
|
||||
Str("envVar", ENV_LOG_LEVEL).
|
||||
Str("defaultLevel", DefaultLogLevel.String()).
|
||||
Msg("Invalid log level in environment, using default")
|
||||
level = DefaultLogLevel
|
||||
}
|
||||
setLevel, err := GetStrFlagOrEnv(cmd, FLAG_LOG_LEVEL, ENV_LOG_LEVEL)
|
||||
if err != nil || setLevel == "" {
|
||||
Logger(cmd).Warn().Err(err).
|
||||
Str("defaultLogLevel", DefAPILogLevel.String()).
|
||||
Msg("no log level set, using default")
|
||||
return &DefaultLogLevel
|
||||
}
|
||||
|
||||
if flagLevel, err := cmd.Flags().GetString(FLAG_LOG_LEVEL); err == nil {
|
||||
level, err = zerolog.ParseLevel(flagLevel)
|
||||
if err != nil {
|
||||
Logger(cmd).Err(err).
|
||||
Str("flagLogLevel", flagLevel).
|
||||
Str("defaultLevel", DefaultLogLevel.String()).
|
||||
Msg("Invalid log level in command flag, using default")
|
||||
level = DefaultLogLevel
|
||||
}
|
||||
level, err := zerolog.ParseLevel(setLevel)
|
||||
if err != nil {
|
||||
Logger(cmd).Err(err).
|
||||
Str("logLevel", setLevel).
|
||||
Str("defaultLevel", DefaultLogLevel.String()).
|
||||
Msg("Invalid log level, using default")
|
||||
level = DefaultLogLevel
|
||||
}
|
||||
|
||||
return &level
|
||||
}
|
||||
|
||||
func GetAPILogLevel(cmd *cobra.Command) *zerolog.Level {
|
||||
var level zerolog.Level
|
||||
var err error
|
||||
if envLevel := os.Getenv(ENV_API_LOG_LEVEL); envLevel != "" {
|
||||
level, err = zerolog.ParseLevel(envLevel)
|
||||
if err != nil {
|
||||
Logger(cmd).Err(err).
|
||||
Str("envLogLevel", envLevel).
|
||||
Str("envVar", ENV_API_LOG_LEVEL).
|
||||
Str("defaultLevel", DefAPILogLevel.String()).
|
||||
Msg("Invalid API log level in environment, using default")
|
||||
level = DefAPILogLevel
|
||||
}
|
||||
setLevel, err := GetStrFlagOrEnv(cmd, FLAG_API_LOG_LEVEL, ENV_API_LOG_LEVEL)
|
||||
if err != nil || setLevel == "" {
|
||||
Logger(cmd).Warn().Err(err).
|
||||
Str("defaultLogLevel", DefAPILogLevel.String()).
|
||||
Msg("no API log level set, using default")
|
||||
return &DefAPILogLevel
|
||||
}
|
||||
|
||||
if flagLevel, err := cmd.Flags().GetString(FLAG_API_LOG_LEVEL); err == nil {
|
||||
level, err = zerolog.ParseLevel(flagLevel)
|
||||
if err != nil {
|
||||
Logger(cmd).Err(err).
|
||||
Str("flagLogLevel", flagLevel).
|
||||
Str("defaultLevel", DefAPILogLevel.String()).
|
||||
Msg("Invalid API log level in command flag, using default")
|
||||
level = DefAPILogLevel
|
||||
}
|
||||
level, err := zerolog.ParseLevel(setLevel)
|
||||
if err != nil {
|
||||
Logger(cmd).Err(err).
|
||||
Str("logLevel", setLevel).
|
||||
Str("defaultLevel", DefAPILogLevel.String()).
|
||||
Msg("Invalid API log level, using default")
|
||||
level = DefAPILogLevel
|
||||
}
|
||||
|
||||
return &level
|
||||
}
|
||||
|
||||
// If set and not empty, returns the flag value
|
||||
// Otherwise, returns the env value, empty or not
|
||||
func GetStrFlagOrEnv(cmd *cobra.Command, flagName string, envName string) (string, error) {
|
||||
flag, err := cmd.Flags().GetString(flagName)
|
||||
if err != nil {
|
||||
return "", err
|
||||
} else if flag != "" {
|
||||
return flag, nil
|
||||
}
|
||||
|
||||
envVal, set := os.LookupEnv(envName)
|
||||
if !set {
|
||||
return envVal, fmt.Errorf("environment variable %s not set", envName)
|
||||
}
|
||||
|
||||
return envVal, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user