in flags/log.go [200:223]
func (l *LogOutput) Set(value string) error {
// Close any file we have been writing to.
if l.Out != nil && l.Out != os.Stdout && l.Out != os.Stderr {
if err := l.Out.Close(); err != nil {
return fmt.Errorf("unable to close output %q: %w", l.Out.Name(), err)
}
}
// If the value is not an empty string it is a file name.
if len(value) > 0 {
file, err := os.Create(value)
if err != nil {
return fmt.Errorf("unable to create output %q: %w", value, err)
}
l.Out = file
} else {
l.Out = os.Stdout
}
l.Logger.Out = l.Out
return nil
}