diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-10-24 11:14:51 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-10-24 13:02:18 +0200 |
commit | deff9e154bc0371af56741ddb22cb1f9e392838a (patch) | |
tree | 81456457be3a9f98a239cc6493ad5003c0b66e7b /common/loggers | |
parent | 889aca054a267506a1c7cfaa3992d324764d6358 (diff) |
Add some color to the relevant filenames in terminal log
Fixes #5344
Diffstat (limited to 'common/loggers')
-rw-r--r-- | common/loggers/loggers.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/common/loggers/loggers.go b/common/loggers/loggers.go index a26cbd8ca..0bc76a0f3 100644 --- a/common/loggers/loggers.go +++ b/common/loggers/loggers.go @@ -19,6 +19,9 @@ import ( "io/ioutil" "log" "os" + "regexp" + + "github.com/gohugoio/hugo/common/terminal" jww "github.com/spf13/jwalterweatherman" ) @@ -70,8 +73,22 @@ func NewErrorLogger() *Logger { return newBasicLogger(jww.LevelError) } +var ansiColorRe = regexp.MustCompile("(?s)\\033\\[\\d*(;\\d*)*m") + +type ansiCleaner struct { + w io.Writer +} + +func (a ansiCleaner) Write(p []byte) (n int, err error) { + return a.w.Write(ansiColorRe.ReplaceAll(p, []byte(""))) +} + func newLogger(stdoutThreshold, logThreshold jww.Threshold, outHandle, logHandle io.Writer, saveErrors bool) *Logger { errorCounter := &jww.Counter{} + if logHandle != ioutil.Discard && terminal.IsTerminal(os.Stdout) { + // Remove any Ansi coloring from log output + logHandle = ansiCleaner{w: logHandle} + } listeners := []jww.LogListener{jww.LogCounter(errorCounter, jww.LevelError)} var errorBuff *bytes.Buffer if saveErrors { |