Skip to content

Commit 71d286f

Browse files
author
Evan Phoenix
authored
Merge pull request #136 from hashicorp/f-color-doc
Fix colors not being forced on correctly.
2 parents 852f2c3 + a72e7ad commit 71d286f

File tree

2 files changed

+49
-3
lines changed

2 files changed

+49
-3
lines changed

intlogger.go

+17-3
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,25 @@ var (
5555

5656
faintBoldColor = color.New(color.Faint, color.Bold)
5757
faintColor = color.New(color.Faint)
58-
faintMultiLinePrefix = faintColor.Sprint(" | ")
59-
faintFieldSeparator = faintColor.Sprint("=")
60-
faintFieldSeparatorWithNewLine = faintColor.Sprint("=\n")
58+
faintMultiLinePrefix string
59+
faintFieldSeparator string
60+
faintFieldSeparatorWithNewLine string
6161
)
6262

63+
func init() {
64+
// Force all the colors to enabled because we do our own detection of color usage.
65+
for _, c := range _levelToColor {
66+
c.EnableColor()
67+
}
68+
69+
faintBoldColor.EnableColor()
70+
faintColor.EnableColor()
71+
72+
faintMultiLinePrefix = faintColor.Sprint(" | ")
73+
faintFieldSeparator = faintColor.Sprint("=")
74+
faintFieldSeparatorWithNewLine = faintColor.Sprint("=\n")
75+
}
76+
6377
// Make sure that intLogger is a Logger
6478
var _ Logger = &intLogger{}
6579

logger_test.go

+32
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,38 @@ func TestLogger(t *testing.T) {
257257
assert.Equal(t, "[INFO] sublogger: this is test\n", rest)
258258
})
259259

260+
t.Run("can force colors to on in any context", func(t *testing.T) {
261+
if runtime.GOOS == "windows" {
262+
t.Skip("colors are different on windows")
263+
}
264+
265+
var buf bytes.Buffer
266+
267+
logger := New(&LoggerOptions{
268+
// No name!
269+
Output: &buf,
270+
Level: Trace,
271+
Color: ForceColor,
272+
TimeFormat: "<time>",
273+
})
274+
275+
logger.Trace("trace")
276+
logger.Debug("debug")
277+
logger.Info("info")
278+
logger.Warn("warn")
279+
logger.Error("error")
280+
str := buf.String()
281+
282+
assert.Equal(t, ""+
283+
"\033[92m<time> [TRACE] trace\n\033[0m"+
284+
"\033[97m<time> [DEBUG] debug\n\033[0m"+
285+
"\033[94m<time> [INFO] info\n\033[0m"+
286+
"\033[93m<time> [WARN] warn\n\033[0m"+
287+
"\033[91m<time> [ERROR] error\n\033[0m",
288+
str,
289+
)
290+
})
291+
260292
t.Run("use a different time format", func(t *testing.T) {
261293
var buf bytes.Buffer
262294

0 commit comments

Comments
 (0)