diff --git a/cmd/root.go b/cmd/root.go index 76eeb8913..ec83469d4 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -666,9 +666,7 @@ func loadConfig(c *Command, args []string, opts []Option) error { // Handle logger separately from config if c.conf.StructuredLogs { c.logger = log.NewStructuredLogger(c.conf.Quiet) - } - - if c.conf.Quiet { + } else if c.conf.Quiet { c.logger = log.NewStdLogger(io.Discard, os.Stderr) } diff --git a/cmd/root_test.go b/cmd/root_test.go index e7d870485..e0aaa3066 100644 --- a/cmd/root_test.go +++ b/cmd/root_test.go @@ -28,6 +28,7 @@ import ( "time" "cloud.google.com/go/cloudsqlconn" + "github.com/GoogleCloudPlatform/cloud-sql-proxy/v2/internal/log" "github.com/GoogleCloudPlatform/cloud-sql-proxy/v2/internal/proxy" "github.com/google/go-cmp/cmp" "github.com/spf13/cobra" @@ -133,6 +134,19 @@ func TestUserAgent(t *testing.T) { } } +func TestStructuredLogsWithQuiet(t *testing.T) { + cmd, err := invokeProxyCommand( + []string{"--structured-logs", "--quiet", "proj:region:inst"}, + ) + if err != nil { + t.Fatalf("want error = nil, got = %v", err) + } + + if _, ok := cmd.logger.(*log.StructuredLogger); !ok { + t.Errorf("want logger = *log.StructuredLogger, got = %T", cmd.logger) + } +} + func TestNewCommandArguments(t *testing.T) { tcs := []struct { desc string