From 3e870d29005c7f30750423b8d38ab6d25ff0076f Mon Sep 17 00:00:00 2001 From: "lilong.129" Date: Thu, 29 Aug 2024 22:09:54 +0800 Subject: [PATCH] feat: add hrp.InitLogger --- hrp/cmd/root.go | 60 ++-------------------------------------------- hrp/logger.go | 63 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 58 deletions(-) create mode 100644 hrp/logger.go diff --git a/hrp/cmd/root.go b/hrp/cmd/root.go index dbab9b48..7ff6b2bd 100644 --- a/hrp/cmd/root.go +++ b/hrp/cmd/root.go @@ -1,17 +1,9 @@ package cmd import ( - "io" - "os" - "runtime" - "strings" - "time" - - "github.com/rs/zerolog" - "github.com/rs/zerolog/log" - "github.com/rs/zerolog/pkgerrors" "github.com/spf13/cobra" + "github.com/httprunner/httprunner/v4/hrp" "github.com/httprunner/httprunner/v4/hrp/cmd/adb" "github.com/httprunner/httprunner/v4/hrp/cmd/ios" "github.com/httprunner/httprunner/v4/hrp/code" @@ -39,7 +31,7 @@ Website: https://httprunner.com Github: https://github.com/httprunner/httprunner Copyright 2017 debugtalk`, PersistentPreRun: func(cmd *cobra.Command, args []string) { - initLogger(logLevel, logJSON) + hrp.InitLogger(logLevel, logJSON) }, Version: version.VERSION, TraverseChildren: true, // parses flags on all parents before executing child command @@ -65,51 +57,3 @@ func Execute() int { err := rootCmd.Execute() return code.GetErrorCode(err) } - -func initLogger(logLevel string, logJSON bool) { - // Error Logging with Stacktrace - zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack - - // set log timestamp precise to milliseconds - zerolog.TimeFieldFormat = "2006-01-02T15:04:05.999Z0700" - - // init log writer - var writer io.Writer - if !logJSON { - // log a human-friendly, colorized output - noColor := false - if runtime.GOOS == "windows" { - noColor = true - } - - writer = zerolog.ConsoleWriter{ - Out: os.Stderr, - TimeFormat: time.RFC3339Nano, - NoColor: noColor, - } - log.Info().Msg("log with colorized console") - } else { - // default logger - log.Info().Msg("log with json output") - writer = os.Stderr - } - log.Logger = zerolog.New(writer).With().Timestamp().Logger() - - // Setting Global Log Level - level := strings.ToUpper(logLevel) - log.Info().Str("log_level", level).Msg("set global log level") - switch level { - case "DEBUG": - zerolog.SetGlobalLevel(zerolog.DebugLevel) - case "INFO": - zerolog.SetGlobalLevel(zerolog.InfoLevel) - case "WARN": - zerolog.SetGlobalLevel(zerolog.WarnLevel) - case "ERROR": - zerolog.SetGlobalLevel(zerolog.ErrorLevel) - case "FATAL": - zerolog.SetGlobalLevel(zerolog.FatalLevel) - case "PANIC": - zerolog.SetGlobalLevel(zerolog.PanicLevel) - } -} diff --git a/hrp/logger.go b/hrp/logger.go new file mode 100644 index 00000000..44c11cc5 --- /dev/null +++ b/hrp/logger.go @@ -0,0 +1,63 @@ +package hrp + +import ( + "io" + "os" + "runtime" + "strings" + "time" + + "github.com/rs/zerolog" + "github.com/rs/zerolog/log" + "github.com/rs/zerolog/pkgerrors" +) + +func InitLogger(logLevel string, logJSON bool) { + // Error Logging with Stacktrace + zerolog.ErrorStackMarshaler = pkgerrors.MarshalStack + + // set log timestamp precise to milliseconds + zerolog.TimeFieldFormat = "2006-01-02T15:04:05.999Z0700" + + // init log writer + var msg string + var writer io.Writer + if !logJSON { + // log a human-friendly, colorized output + noColor := false + if runtime.GOOS == "windows" { + noColor = true + } + + writer = zerolog.ConsoleWriter{ + Out: os.Stderr, + TimeFormat: time.RFC3339Nano, + NoColor: noColor, + } + msg = "log with colorized console" + } else { + // default logger + writer = os.Stderr + msg = "log with json output" + } + log.Logger = zerolog.New(writer).With().Timestamp().Logger() + log.Info().Msg(msg) + + // Setting Global Log Level + level := strings.ToUpper(logLevel) + log.Info().Str("log_level", level).Msg("set global log level") + switch level { + case "DEBUG": + zerolog.SetGlobalLevel(zerolog.DebugLevel) + case "INFO": + zerolog.SetGlobalLevel(zerolog.InfoLevel) + case "WARN": + zerolog.SetGlobalLevel(zerolog.WarnLevel) + case "ERROR": + zerolog.SetGlobalLevel(zerolog.ErrorLevel) + case "FATAL": + zerolog.SetGlobalLevel(zerolog.FatalLevel) + case "PANIC": + zerolog.SetGlobalLevel(zerolog.PanicLevel) + } +}