diff options
author | Bryan McNulty <bryanmcnulty@protonmail.com> | 2025-04-17 14:31:54 -0500 |
---|---|---|
committer | Bryan McNulty <bryanmcnulty@protonmail.com> | 2025-04-17 14:31:54 -0500 |
commit | dbeb1b050ed6891fad0fd7188be09282a1cec283 (patch) | |
tree | 8372fe478a5b61cc429463f615b244e8f497dd11 /cmd | |
parent | 8a603f6e656afb32182662c0927c9b8776b7830d (diff) | |
download | goexec-dbeb1b050ed6891fad0fd7188be09282a1cec283.tar.gz goexec-dbeb1b050ed6891fad0fd7188be09282a1cec283.zip |
Upgrade new logging options
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/root.go | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/cmd/root.go b/cmd/root.go index 3ac9a5b..46e8595 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -23,12 +23,12 @@ var ( proxy string // === Logging === - logJson bool // Log output in JSON lines - logDebug bool // Output debug log messages - logQuiet bool // Suppress logging output - logOutput string // Log output file - logLevel zerolog.Level = zerolog.InfoLevel - logFile io.Writer = os.Stderr + logJson bool // Log output in JSON lines + logDebug bool // Output debug log messages + logQuiet bool // Suppress logging output + logOutput string // Log output file + logLevel zerolog.Level = zerolog.InfoLevel + logFile io.WriteCloser = os.Stderr log zerolog.Logger // =============== @@ -54,10 +54,11 @@ var ( // Parse logging options { if logOutput != "" { - logFile, err = os.OpenFile(logOutput, os.O_WRONLY|os.O_CREATE, 0644) + logFile, err = os.OpenFile(logOutput, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) if err != nil { return } + logJson = true } if logQuiet { logLevel = zerolog.ErrorLevel @@ -65,7 +66,7 @@ var ( logLevel = zerolog.DebugLevel } if logJson { - log = zerolog.New(logFile) + log = zerolog.New(logFile).With().Timestamp().Logger() } else { log = zerolog.New(zerolog.ConsoleWriter{Out: logFile}).With().Timestamp().Logger() } @@ -92,6 +93,12 @@ var ( } return }, + + PersistentPostRun: func(cmd *cobra.Command, args []string) { + if err := logFile.Close(); err != nil { + // ... + } + }, } ) @@ -109,7 +116,7 @@ func init() { logOpts.BoolVar(&logDebug, "debug", false, "Enable debug logging") logOpts.BoolVar(&logJson, "json", false, "Write logging output in JSON lines") logOpts.BoolVar(&logQuiet, "quiet", false, "Disable info logging") - logOpts.StringVarP(&logOutput, "log-file", "O", "", "Write logging output to file") + logOpts.StringVarP(&logOutput, "log-file", "O", "", "Write JSON logging output to file") rootCmd.PersistentFlags().AddFlagSet(logOpts) } |