summaryrefslogtreecommitdiffstats
path: root/common/loggers
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-10-23 22:04:52 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-10-24 11:11:18 +0200
commitbaa975082c6809c8a02a8109ec3062a2b7d48344 (patch)
tree61820ab09d58b1fb18099b3910dc5f6179991368 /common/loggers
parent3e8b5a5c0157fdcf93588a42fbc90b3cd898f6b1 (diff)
deps: Update to Chroma v0.6.8 to fix a crash
Also improve relevant logging. Fixes #6450
Diffstat (limited to 'common/loggers')
-rw-r--r--common/loggers/loggers.go23
1 files changed, 22 insertions, 1 deletions
diff --git a/common/loggers/loggers.go b/common/loggers/loggers.go
index 082fd1487..8766e6aaf 100644
--- a/common/loggers/loggers.go
+++ b/common/loggers/loggers.go
@@ -15,11 +15,13 @@ package loggers
import (
"bytes"
+ "fmt"
"io"
"io/ioutil"
"log"
"os"
"regexp"
+ "runtime"
"github.com/gohugoio/hugo/common/terminal"
@@ -142,6 +144,26 @@ func getLogWriters(outHandle, logHandle io.Writer) (io.Writer, io.Writer) {
}
+type fatalLogWriter int
+
+func (s fatalLogWriter) Write(p []byte) (n int, err error) {
+ trace := make([]byte, 1500)
+ runtime.Stack(trace, true)
+ fmt.Printf("\n===========\n\n%s\n", trace)
+ os.Exit(-1)
+
+ return 0, nil
+}
+
+var fatalLogListener = func(t jww.Threshold) io.Writer {
+ if t != jww.LevelError {
+ // Only interested in ERROR
+ return nil
+ }
+
+ return new(fatalLogWriter)
+}
+
func newLogger(stdoutThreshold, logThreshold jww.Threshold, outHandle, logHandle io.Writer, saveErrors bool) *Logger {
errorCounter := &jww.Counter{}
warnCounter := &jww.Counter{}
@@ -156,7 +178,6 @@ func newLogger(stdoutThreshold, logThreshold jww.Threshold, outHandle, logHandle
// Only interested in ERROR
return nil
}
-
return errorBuff
}