From ac1a34e33e6636f513aaf0864ade3bfb8d8de2dc Mon Sep 17 00:00:00 2001 From: UUBulb <35923940+uubulb@users.noreply.github.com> Date: Fri, 9 Aug 2024 22:03:41 +0800 Subject: [PATCH] feat: add option to disable syslog logging (#53) * feat: add option to disable syslog logging * missing comments * service flags * initialize util.Logger --- cmd/agent/main.go | 21 +++++++++++++-------- cmd/agent/service.go | 1 + pkg/util/util.go | 12 +++--------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/cmd/agent/main.go b/cmd/agent/main.go index 14dae77..803e490 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -54,6 +54,7 @@ type AgentCliParam struct { IPReportPeriod uint32 // 上报IP间隔 UseIPv6CountryCode bool // 默认优先展示IPv6旗帜 UseGiteeToUpgrade bool // 强制从Gitee获取更新 + DisableSyslog bool // 将日志输出到stderr } var ( @@ -67,11 +68,7 @@ var ( var agentCmd = &cobra.Command{ Use: "agent", Run: func(cmd *cobra.Command, args []string) { - if runtime.GOOS == "darwin" { - run() // https://github.com/golang/go/issues/59229 - } else { - runService("", nil) - } + runService("", nil) }, PreRun: preRun, PersistentPreRun: persistPreRun, @@ -155,9 +152,15 @@ func init() { agentCmd.PersistentFlags().BoolVar(&agentConfig.GPU, "gpu", false, "启用GPU监控") agentCmd.PersistentFlags().BoolVar(&agentConfig.Temperature, "temperature", false, "启用温度监控") agentCmd.PersistentFlags().BoolVar(&agentCliParam.UseGiteeToUpgrade, "gitee", false, "使用Gitee获取更新") + agentCmd.PersistentFlags().BoolVar(&agentCliParam.DisableSyslog, "disable-syslog", false, "将日志输出到stderr") agentCmd.PersistentFlags().Uint32VarP(&agentCliParam.IPReportPeriod, "ip-report-period", "u", 30*60, "本地IP更新间隔, 上报频率依旧取决于report-delay的值") agentCmd.Flags().BoolVarP(&agentCliParam.Version, "version", "v", false, "查看当前版本号") + // https://github.com/golang/go/issues/59229 + if runtime.GOOS == "darwin" { + agentCliParam.DisableSyslog = true + } + agentConfig.Read(filepath.Dir(ex) + "/config.yml") monitor.InitConfig(&agentConfig) @@ -324,9 +327,11 @@ func runService(action string, flags []string) { prg.service = s errs := make(chan error, 5) - util.Logger, err = s.Logger(errs) - if err != nil { - log.Fatal(err) + if !agentCliParam.DisableSyslog { + util.Logger, err = s.Logger(errs) + if err != nil { + log.Fatal(err) + } } go func() { diff --git a/cmd/agent/service.go b/cmd/agent/service.go index f01c21f..66b430d 100644 --- a/cmd/agent/service.go +++ b/cmd/agent/service.go @@ -87,6 +87,7 @@ func serviceActions(cmd *cobra.Command, args []string) { {agentCliParam.UseIPv6CountryCode, "--use-ipv6-countrycode", ""}, {agentConfig.GPU, "--gpu", ""}, {agentCliParam.UseGiteeToUpgrade, "--gitee", ""}, + {agentCliParam.DisableSyslog, "--disable-syslog", ""}, {agentCliParam.IPReportPeriod != 30*60, "-u", fmt.Sprint(agentCliParam.IPReportPeriod)}, } diff --git a/pkg/util/util.go b/pkg/util/util.go index 92cad29..1e3b65f 100644 --- a/pkg/util/util.go +++ b/pkg/util/util.go @@ -3,7 +3,6 @@ package util import ( "fmt" "os" - "runtime" "time" jsoniter "github.com/json-iterator/go" @@ -11,8 +10,8 @@ import ( ) var ( - Json = jsoniter.ConfigCompatibleWithStandardLibrary - Logger service.Logger + Json = jsoniter.ConfigCompatibleWithStandardLibrary + Logger service.Logger = service.ConsoleLogger ) func IsWindows() bool { @@ -21,11 +20,6 @@ func IsWindows() bool { func Println(enabled bool, v ...interface{}) { if enabled { - if runtime.GOOS != "darwin" { - Logger.Infof("NEZHA@%s>> %v", time.Now().Format("2006-01-02 15:04:05"), fmt.Sprint(v...)) - } else { - fmt.Printf("NEZHA@%s>> ", time.Now().Format("2006-01-02 15:04:05")) - fmt.Println(v...) - } + Logger.Infof("NEZHA@%s>> %v", time.Now().Format("2006-01-02 15:04:05"), fmt.Sprint(v...)) } }