Skip to content

Commit 8c19ab7

Browse files
committed
chore(trdl-vault): add flag to control log level
Signed-off-by: Evgeniy Frolov <evgeniy.frolov@flant.com>
1 parent 2cb10a6 commit 8c19ab7

File tree

5 files changed

+29
-1
lines changed

5 files changed

+29
-1
lines changed

release/cmd/trdl-vault/main.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ func main() {
4848
common.SetupRetry(&commonCmdData, cmd)
4949
common.SetupMaxAttemps(&commonCmdData, cmd)
5050
common.SetupDelay(&commonCmdData, cmd)
51+
common.SetupLogLevel(&commonCmdData, cmd)
5152

5253
cmd.AddCommand(publishCmd)
5354
cmd.AddCommand(releaseCmd)
@@ -66,6 +67,7 @@ func publishCmd(c *common.CmdData, projectName string) error {
6667
Retry: *c.Retry,
6768
MaxAttempts: *c.MaxAttempts,
6869
Delay: *c.Delay,
70+
LogLevel: c.GetLogLevel(),
6971
})
7072
if err != nil {
7173
return fmt.Errorf("unable to create client: %w", err)
@@ -83,6 +85,7 @@ func releaseCmd(c *common.CmdData, projectName, gitTag string) error {
8385
Retry: *c.Retry,
8486
MaxAttempts: *c.MaxAttempts,
8587
Delay: *c.Delay,
88+
LogLevel: c.GetLogLevel(),
8689
})
8790
if err != nil {
8891
return fmt.Errorf("unable to create client: %w", err)

release/common/cmd_data.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ type CmdData struct {
88
Retry *bool
99
MaxAttempts *int
1010
Delay *time.Duration
11+
LogLevel *string
1112
}

release/common/common.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package common
22

33
import (
4+
"log/slog"
45
"net/url"
56
"os"
67
"time"
78

89
"github.com/spf13/cobra"
10+
"github.com/werf/trdl/release/pkg/logger"
911
)
1012

1113
func SetupVaultAddress(cmdData *CmdData, cmd *cobra.Command) {
@@ -54,3 +56,11 @@ func SetupDelay(cmdData *CmdData, cmd *cobra.Command) {
5456
cmd.PersistentFlags().DurationVarP(cmdData.Delay, "delay", "", 10*time.Second, "Set max delay between retries")
5557

5658
}
59+
func SetupLogLevel(cmdData *CmdData, cmd *cobra.Command) {
60+
cmdData.LogLevel = new(string)
61+
cmd.PersistentFlags().StringVarP(cmdData.LogLevel, "log-level", "", "", "Set log level (debug, info, warn, error)")
62+
}
63+
64+
func (c *CmdData) GetLogLevel() slog.Level {
65+
return logger.ParseLogLevel(*c.LogLevel)
66+
}

release/pkg/client/main.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,11 @@ type NewTrdlVaultClientOpts struct {
3636
Retry bool
3737
MaxAttempts int
3838
Delay time.Duration
39+
LogLevel slog.Level
3940
}
4041

4142
func NewTrdlVaultClient(opts NewTrdlVaultClientOpts) (*Client, error) {
42-
log := logger.NewLogger(slog.LevelInfo) // TODO: add logger level to opts
43+
log := logger.NewLogger(opts.LogLevel)
4344
trdlClient, err := vault.NewTrdlClient(vault.NewTrdlClientOpts{
4445
VaultAddress: opts.VaultAddress,
4546
VaultToken: opts.VaultToken,

release/pkg/logger/logger.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,19 @@ func NewLogger(level slog.Level) *Logger {
1515
return &Logger{logger: slog.New(handler)}
1616
}
1717

18+
func ParseLogLevel(level string) slog.Level {
19+
switch level {
20+
case "debug":
21+
return slog.LevelDebug
22+
case "warn":
23+
return slog.LevelWarn
24+
case "error":
25+
return slog.LevelError
26+
default:
27+
return slog.LevelInfo
28+
}
29+
}
30+
1831
func (l *Logger) Debug(taskID, msg string) {
1932
l.log(context.Background(), slog.LevelDebug, taskID, msg)
2033
}

0 commit comments

Comments
 (0)