Skip to content

Commit 24014d8

Browse files
authored
feat: Add support for changing the default logger (minekube#536)
* Add support for setting a custom logger * update comment * Update root.go Change out the global logger var and the SetLogger func from e2c344c for ExecuteContext
1 parent f158f91 commit 24014d8

1 file changed

Lines changed: 24 additions & 5 deletions

File tree

cmd/gate/root.go

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package gate
22

33
import (
4+
"context"
45
"errors"
56
"fmt"
67
"math"
@@ -16,12 +17,23 @@ import (
1617
"go.uber.org/zap/zapcore"
1718
)
1819

20+
// Execute runs App() with the provided context and calls os.Exit when finished.
21+
func ExecuteContext(ctx context.Context) {
22+
if err := App().RunContext(ctx, os.Args); err != nil {
23+
_, _ = fmt.Fprintf(os.Stderr, "%v\n", err)
24+
os.Exit(1)
25+
}
26+
27+
os.Exit(0)
28+
}
29+
1930
// Execute runs App() and calls os.Exit when finished.
2031
func Execute() {
2132
if err := App().Run(os.Args); err != nil {
2233
_, _ = fmt.Fprintf(os.Stderr, "%v\n", err)
2334
os.Exit(1)
2435
}
36+
2537
os.Exit(0)
2638
}
2739

@@ -87,12 +99,18 @@ Visit the website https://gate.minekube.com/ for more information.`
8799
verbosity = math.MaxInt8
88100
}
89101

90-
// Create logger
91-
log, err := newLogger(debug, verbosity)
92-
if err != nil {
93-
return cli.Exit(fmt.Errorf("error creating zap logger: %w", err), 1)
102+
// Create or get logger
103+
104+
var log logr.Logger
105+
if log, err = logr.FromContext(c.Context); err != nil {
106+
log, err = newLogger(debug, verbosity)
107+
108+
if err != nil {
109+
return cli.Exit(fmt.Errorf("error creating zap logger: %w", err), 1)
110+
}
111+
112+
c.Context = logr.NewContext(c.Context, log)
94113
}
95-
c.Context = logr.NewContext(c.Context, log)
96114

97115
log.Info("logging verbosity", "verbosity", verbosity)
98116
log.Info("using config file", "config", v.ConfigFileUsed())
@@ -143,5 +161,6 @@ func newLogger(debug bool, v int) (l logr.Logger, err error) {
143161
if err != nil {
144162
return logr.Discard(), err
145163
}
164+
146165
return zapr.NewLogger(zl), nil
147166
}

0 commit comments

Comments
 (0)