From f8638839c0e1abeabee558d2421ab257aa16ce6f Mon Sep 17 00:00:00 2001 From: Dalton Date: Fri, 5 Jun 2020 10:18:40 -0500 Subject: [PATCH] AUTH-2729 added log file and level to cmd flags to match config file settings --- cmd/cloudflared/access/carrier.go | 11 +++++++++++ cmd/cloudflared/access/cmd.go | 28 ++++++++++++++++++++-------- cmd/cloudflared/tunnel/cmd.go | 9 ++++++--- 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/cmd/cloudflared/access/carrier.go b/cmd/cloudflared/access/carrier.go index 173ced25..d6717ea1 100644 --- a/cmd/cloudflared/access/carrier.go +++ b/cmd/cloudflared/access/carrier.go @@ -44,6 +44,17 @@ func StartForwarder(forwarder config.Forwarder, shutdown <-chan struct{}, logger // (which you can put Access in front of) func ssh(c *cli.Context) error { logDirectory, logLevel := config.FindLogSettings() + + flagLogDirectory := c.String(sshLogDirectoryFlag) + if flagLogDirectory != "" { + logDirectory = flagLogDirectory + } + + flagLogLevel := c.String(sshLogLevelFlag) + if flagLogLevel != "" { + logLevel = flagLogLevel + } + logger, err := logger.New(logger.DefaultFile(logDirectory), logger.LogLevelString(logLevel)) if err != nil { return errors.Wrap(err, "error setting up logger") diff --git a/cmd/cloudflared/access/cmd.go b/cmd/cloudflared/access/cmd.go index 96359c7c..a255a662 100644 --- a/cmd/cloudflared/access/cmd.go +++ b/cmd/cloudflared/access/cmd.go @@ -25,14 +25,16 @@ import ( ) const ( - sshHostnameFlag = "hostname" - sshDestinationFlag = "destination" - sshURLFlag = "url" - sshHeaderFlag = "header" - sshTokenIDFlag = "service-token-id" - sshTokenSecretFlag = "service-token-secret" - sshGenCertFlag = "short-lived-cert" - sshConfigTemplate = ` + sshHostnameFlag = "hostname" + sshDestinationFlag = "destination" + sshURLFlag = "url" + sshHeaderFlag = "header" + sshTokenIDFlag = "service-token-id" + sshTokenSecretFlag = "service-token-secret" + sshGenCertFlag = "short-lived-cert" + sshLogDirectoryFlag = "log-directory" + sshLogLevelFlag = "log-level" + sshConfigTemplate = ` Add to your {{.Home}}/.ssh/config: Host {{.Hostname}} @@ -154,6 +156,16 @@ func Commands() []*cli.Command { Aliases: []string{"secret"}, Usage: "specify an Access service token secret you wish to use.", }, + &cli.StringFlag{ + Name: sshLogDirectoryFlag, + Aliases: []string{"logfile"}, //added to match the tunnel side + Usage: "Save application log to this directory for reporting issues.", + }, + &cli.StringFlag{ + Name: sshLogLevelFlag, + Aliases: []string{"loglevel"}, //added to match the tunnel side + Usage: "Application logging level {fatal, error, info, debug}. ", + }, }, }, { diff --git a/cmd/cloudflared/tunnel/cmd.go b/cmd/cloudflared/tunnel/cmd.go index 84e547c4..c909c809 100644 --- a/cmd/cloudflared/tunnel/cmd.go +++ b/cmd/cloudflared/tunnel/cmd.go @@ -90,6 +90,8 @@ const ( // bastionFlag is to enable bastion, or jump host, operation bastionFlag = "bastion" + logDirectoryFlag = "log-directory" + debugLevelWarning = "At debug level, request URL, method, protocol, content legnth and header will be logged. " + "Response status, content length and header will also be logged in debug level." ) @@ -213,7 +215,7 @@ func Init(v string, s, g chan struct{}) { func createLogger(c *cli.Context, isTransport bool) (logger.Service, error) { loggerOpts := []logger.Option{} - logPath := c.String("logfile") + logPath := c.String(logDirectoryFlag) if logPath != "" { loggerOpts = append(loggerOpts, logger.DefaultFile(logPath)) } @@ -828,8 +830,9 @@ func tunnelFlags(shouldHide bool) []cli.Flag { Hidden: shouldHide, }), altsrc.NewStringFlag(&cli.StringFlag{ - Name: "logfile", - Usage: "Save application log to this file for reporting issues.", + Name: logDirectoryFlag, + Aliases: []string{"logfile"}, // This flag used to be called logfile when it was a single file + Usage: "Save application log to this directory for reporting issues.", EnvVars: []string{"TUNNEL_LOGFILE"}, Hidden: shouldHide, }),