Skip setting of log file for --version flag

Signed-off-by: Evan Lezar <elezar@nvidia.com>
This commit is contained in:
Evan Lezar 2022-05-12 12:05:55 +02:00
parent bdb43aa8f2
commit 19138a2110
2 changed files with 45 additions and 28 deletions

View File

@ -49,18 +49,23 @@ func UpdateLogger(filename string, logLevel string, argv []string) (*Logger, err
level, logLevelError := configFromArgs.getLevel(logLevel)
var logFiles []*os.File
var argLogFileError error
configLogFile, err := createLogFile(filename)
if err != nil {
return logger, fmt.Errorf("error opening debug log file: %v", err)
}
if configLogFile != nil {
logFiles = append(logFiles, configLogFile)
}
// We don't create log files if the version argument is supplied
if !configFromArgs.version {
configLogFile, err := createLogFile(filename)
if err != nil {
return logger, fmt.Errorf("error opening debug log file: %v", err)
}
if configLogFile != nil {
logFiles = append(logFiles, configLogFile)
}
argLogFile, argLogFileError := createLogFile(configFromArgs.file)
if argLogFile != nil {
logFiles = append(logFiles, argLogFile)
argLogFile, err := createLogFile(configFromArgs.file)
if argLogFile != nil {
logFiles = append(logFiles, argLogFile)
}
argLogFileError = err
}
l := &Logger{
@ -69,18 +74,6 @@ func UpdateLogger(filename string, logLevel string, argv []string) (*Logger, err
logFiles: logFiles,
}
if len(logFiles) == 0 {
l.SetOutput(io.Discard)
} else if len(logFiles) == 1 {
l.SetOutput(logFiles[0])
} else {
var writers []io.Writer
for _, f := range logFiles {
writers = append(writers, f)
}
l.SetOutput(io.MultiWriter(writers...))
}
l.SetLevel(level)
if level == logrus.DebugLevel {
logrus.SetReportCaller(true)
@ -102,6 +95,18 @@ func UpdateLogger(filename string, logLevel string, argv []string) (*Logger, err
l.SetFormatter(new(logrus.JSONFormatter))
}
if len(logFiles) == 0 {
l.SetOutput(io.Discard)
} else if len(logFiles) == 1 {
l.SetOutput(logFiles[0])
} else if len(logFiles) > 1 {
var writers []io.Writer
for _, f := range logFiles {
writers = append(writers, f)
}
l.SetOutput(io.MultiWriter(writers...))
}
if logLevelError != nil {
l.Warn(logLevelError)
}
@ -153,9 +158,10 @@ func createLogFile(filename string) (*os.File, error) {
}
type loggerConfig struct {
file string
format string
debug bool
file string
format string
debug bool
version bool
}
func (c loggerConfig) getLevel(logLevel string) (logrus.Level, error) {
@ -182,15 +188,24 @@ func parseArgs(args []string) loggerConfig {
found := make(map[string]bool)
for i := 0; i < len(args); i++ {
if len(found) == 3 {
if len(found) == 4 {
break
}
param := args[i]
parts := strings.SplitN(param, "=", 2)
trimmed := strings.TrimPrefix(parts[0], "--")
if !strings.HasPrefix(parts[0], "--") {
trimmed := strings.TrimLeft(parts[0], "-")
// If this is not a flag we continue
if parts[0] == trimmed {
continue
}
// Check the version flag
if trimmed == "version" {
c.version = true
found["version"] = true
// For the version flag we don't process any other flags
continue
}

View File

@ -7,6 +7,8 @@ import (
"github.com/NVIDIA/nvidia-container-toolkit/internal/config"
)
var Version string
var logger = NewLogger()
func main() {