Skip to content

Commit 51f1a17

Browse files
authored
dev: log level colors (#5866)
1 parent cc3f6de commit 51f1a17

File tree

2 files changed

+27
-12
lines changed

2 files changed

+27
-12
lines changed

pkg/commands/root.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,9 @@ func setupLogger(logger logutils.Log) error {
115115
logger.Fatalf("invalid value %q for --color; must be 'always', 'auto', or 'never'", opts.Color)
116116
}
117117

118+
// For log level colors (mainly for verbose output)
119+
logutils.DisableColors(color.NoColor)
120+
118121
return nil
119122
}
120123

pkg/logutils/stderr_log.go

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ const (
1717
envLogTimestamp = "LOG_TIMESTAMP"
1818
)
1919

20+
var _ Log = NewStderrLog(DebugKeyEmpty)
21+
2022
type StderrLog struct {
2123
name string
2224
logger *logrus.Logger
2325
level LogLevel
2426
}
2527

26-
var _ Log = NewStderrLog(DebugKeyEmpty)
27-
2828
func NewStderrLog(name string) *StderrLog {
2929
sl := &StderrLog{
3030
name: name,
@@ -44,16 +44,7 @@ func NewStderrLog(name string) *StderrLog {
4444
}
4545

4646
sl.logger.Out = StdErr
47-
formatter := &logrus.TextFormatter{
48-
DisableTimestamp: true, // `INFO[0007] msg` -> `INFO msg`
49-
EnvironmentOverrideColors: true,
50-
}
51-
if os.Getenv(envLogTimestamp) == "1" {
52-
formatter.DisableTimestamp = false
53-
formatter.FullTimestamp = true
54-
formatter.TimestampFormat = time.StampMilli
55-
}
56-
sl.logger.Formatter = formatter
47+
sl.logger.Formatter = logFormatter
5748

5849
return sl
5950
}
@@ -127,3 +118,24 @@ func (sl StderrLog) Child(name string) Log {
127118
func (sl *StderrLog) SetLevel(level LogLevel) {
128119
sl.level = level
129120
}
121+
122+
var logFormatter = newLogFormatter()
123+
124+
func DisableColors(disable bool) {
125+
logFormatter.DisableColors = disable
126+
}
127+
128+
func newLogFormatter() *logrus.TextFormatter {
129+
formatter := &logrus.TextFormatter{
130+
DisableTimestamp: true, // `INFO[0007] msg` -> `INFO msg`
131+
EnvironmentOverrideColors: true,
132+
}
133+
134+
if os.Getenv(envLogTimestamp) == "1" {
135+
formatter.DisableTimestamp = false
136+
formatter.FullTimestamp = true
137+
formatter.TimestampFormat = time.StampMilli
138+
}
139+
140+
return formatter
141+
}

0 commit comments

Comments
 (0)