X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=main.go;h=f9b32f38c8fabeba0a177de64e28dfc1da725c37;hb=84273d6128b7c3c9d31c2f3a1453107a78e949a9;hp=72a9d22c05d57b32b76f5ea64fa01bbc603a4853;hpb=7d1bcb1c9a48514e0e26246b86c8597502833b4b;p=src%2Fxds%2Fxds-cli.git diff --git a/main.go b/main.go index 72a9d22..f9b32f3 100644 --- a/main.go +++ b/main.go @@ -177,6 +177,12 @@ func main() { 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", @@ -206,8 +212,8 @@ func main() { // 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"}) @@ -277,6 +283,17 @@ func main() { } 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()) @@ -389,6 +406,9 @@ func XdsConnInit(ctx *cli.Context) error { if err := XdsConfigGet(&xdsConf); err != nil { return cli.NewExitError("ERROR while getting XDS config: "+err.Error(), 1) } + if len(xdsConf.Servers) < 1 { + return cli.NewExitError("No XDS Server connected", 1) + } svrCfg := xdsConf.Servers[XdsServerIndexGet()] if (serverURL != "" && svrCfg.URL != serverURL) || !svrCfg.Connected { Log.Infof("Update XDS Server config: serverURL=%v, svrCfg=%v", serverURL, svrCfg)