Usage: "logging level (supported levels: panic, fatal, error, warn, info, debug)",
Value: defaultLogLevel,
},
+ cli.StringFlag{
+ Name: "logfile",
+ Value: "stderr",
+ Usage: "filename where logs will be redirected (default stderr)\n\t",
+ EnvVar: "XDS_LOGFILENAME",
+ },
cli.StringFlag{
Name: "url, u",
EnvVar: "XDS_AGENT_URL",
// Add --config option to all commands to support --config option either before or after command verb
// IOW support following both syntaxes:
- // xds-cli exec --config myprj.conf ...
- // xds-cli --config myprj.conf exec ...
+ // xds-cli exec --config myPrj.conf ...
+ // xds-cli --config myPrj.conf exec ...
for i, cmd := range app.Commands {
if len(cmd.Flags) > 0 {
app.Commands[i].Flags = append(cmd.Flags, cli.StringFlag{Hidden: true, Name: "config, c"})
}
Log.Formatter = &logrus.TextFormatter{}
+ if ctx.String("logfile") != "stderr" {
+ logFile, _ := common.ResolveEnvVar(ctx.String("logfile"))
+ fdL, err := os.OpenFile(logFile, os.O_CREATE|os.O_TRUNC|os.O_WRONLY, 0666)
+ if err != nil {
+ msgErr := fmt.Sprintf("Cannot create log file %s", logFile)
+ return cli.NewExitError(msgErr, 1)
+ }
+ Log.Infof("Logging to file: %s", logFile)
+ Log.Out = fdL
+ }
+
Log.Infof("%s version: %s", AppName, app.Version)
earlyDisplay()
Log.Debugf("\nEnvironment: %v\n", os.Environ())