Skip to content

Commit 79c8ff0

Browse files
authored
Merge pull request #74 from cloudang/options
Command line options for easier debugging
2 parents 535a92e + 231a323 commit 79c8ff0

File tree

4 files changed

+35
-9
lines changed

4 files changed

+35
-9
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@
1313
.DS_Store
1414

1515
bin/
16-
artifacts/gcloud/
16+
artifacts/gcloud/
17+
.idea

cmd/flagger/main.go

+13-2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"flag"
5+
"go.uber.org/zap"
56
"log"
67
"time"
78

@@ -31,6 +32,9 @@ var (
3132
slackURL string
3233
slackUser string
3334
slackChannel string
35+
threadiness int
36+
zapReplaceGlobals bool
37+
zapEncoding string
3438
)
3539

3640
func init() {
@@ -43,15 +47,22 @@ func init() {
4347
flag.StringVar(&slackURL, "slack-url", "", "Slack hook URL.")
4448
flag.StringVar(&slackUser, "slack-user", "flagger", "Slack user name.")
4549
flag.StringVar(&slackChannel, "slack-channel", "", "Slack channel.")
50+
flag.IntVar(&threadiness, "threadiness", 2, "Worker concurrency.")
51+
flag.BoolVar(&zapReplaceGlobals, "zap-replace-globals", false, "Whether to change the logging level of the global zap logger.")
52+
flag.StringVar(&zapEncoding, "zap-encoding", "json", "Zap logger encoding.")
4653
}
4754

4855
func main() {
4956
flag.Parse()
5057

51-
logger, err := logging.NewLogger(logLevel)
58+
logger, err := logging.NewLoggerWithEncoding(logLevel, zapEncoding)
5259
if err != nil {
5360
log.Fatalf("Error creating logger: %v", err)
5461
}
62+
if zapReplaceGlobals {
63+
zap.ReplaceGlobals(logger.Desugar())
64+
}
65+
5566
defer logger.Sync()
5667

5768
stopCh := signals.SetupSignalHandler()
@@ -132,7 +143,7 @@ func main() {
132143

133144
// start controller
134145
go func(ctrl *controller.Controller) {
135-
if err := ctrl.Run(2, stopCh); err != nil {
146+
if err := ctrl.Run(threadiness, stopCh); err != nil {
136147
logger.Fatalf("Error running controller: %v", err)
137148
}
138149
}(c)

cmd/loadtester/main.go

+14-5
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,41 @@ import (
55
"github.com/knative/pkg/signals"
66
"github.com/stefanprodan/flagger/pkg/loadtester"
77
"github.com/stefanprodan/flagger/pkg/logging"
8+
"go.uber.org/zap"
89
"log"
910
"time"
1011
)
1112

1213
var VERSION = "0.1.0"
1314
var (
14-
logLevel string
15-
port string
16-
timeout time.Duration
17-
logCmdOutput bool
15+
logLevel string
16+
port string
17+
timeout time.Duration
18+
logCmdOutput bool
19+
zapReplaceGlobals bool
20+
zapEncoding string
1821
)
1922

2023
func init() {
2124
flag.StringVar(&logLevel, "log-level", "debug", "Log level can be: debug, info, warning, error.")
2225
flag.StringVar(&port, "port", "9090", "Port to listen on.")
2326
flag.DurationVar(&timeout, "timeout", time.Hour, "Command exec timeout.")
2427
flag.BoolVar(&logCmdOutput, "log-cmd-output", true, "Log command output to stderr")
28+
flag.BoolVar(&zapReplaceGlobals, "zap-replace-globals", false, "Whether to change the logging level of the global zap logger.")
29+
flag.StringVar(&zapEncoding, "zap-encoding", "json", "Zap logger encoding.")
2530
}
2631

2732
func main() {
2833
flag.Parse()
2934

30-
logger, err := logging.NewLogger(logLevel)
35+
logger, err := logging.NewLoggerWithEncoding(logLevel, zapEncoding)
3136
if err != nil {
3237
log.Fatalf("Error creating logger: %v", err)
3338
}
39+
if zapReplaceGlobals {
40+
zap.ReplaceGlobals(logger.Desugar())
41+
}
42+
3443
defer logger.Sync()
3544

3645
stopCh := signals.SetupSignalHandler()

pkg/logging/logger.go

+6-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ import (
1010

1111
// NewLogger returns a zap sugared logger configured with json format and caller id
1212
func NewLogger(logLevel string) (*zap.SugaredLogger, error) {
13+
return NewLoggerWithEncoding(logLevel, "json")
14+
}
15+
16+
// NewLoggerWithEncoding returns a zap sugared logger configured with provided format, e.g. console or json, and caller id
17+
func NewLoggerWithEncoding(logLevel, zapEncoding string) (*zap.SugaredLogger, error) {
1318
level := zap.NewAtomicLevelAt(zapcore.InfoLevel)
1419
switch logLevel {
1520
case "debug":
@@ -47,7 +52,7 @@ func NewLogger(logLevel string) (*zap.SugaredLogger, error) {
4752
Initial: 100,
4853
Thereafter: 100,
4954
},
50-
Encoding: "json",
55+
Encoding: zapEncoding,
5156
EncoderConfig: zapEncoderConfig,
5257
OutputPaths: []string{"stderr"},
5358
ErrorOutputPaths: []string{"stderr"},

0 commit comments

Comments
 (0)