func()

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
}