Fix log errors not forwarded to ui
This commit is contained in:
parent
8410266116
commit
3faef17ffa
1 changed files with 19 additions and 5 deletions
24
util/log.go
24
util/log.go
|
|
@ -56,6 +56,11 @@ func NewLogger(area string) *Logger {
|
|||
Redactor: redactor,
|
||||
}
|
||||
|
||||
// capture loggers created after uiChan is initialized
|
||||
if uiChan != nil {
|
||||
captureLogger(logger)
|
||||
}
|
||||
|
||||
loggers[area] = logger
|
||||
|
||||
return logger
|
||||
|
|
@ -139,18 +144,27 @@ func (w *uiWriter) Write(p []byte) (n int, err error) {
|
|||
return 0, nil
|
||||
}
|
||||
|
||||
// CaptureLogs appends uiWriter to relevant log levels
|
||||
// CaptureLogs appends uiWriter to relevant log levels for
|
||||
// loggers created before uiChan is initialized
|
||||
func CaptureLogs(c chan<- Param) {
|
||||
if uiChan != nil {
|
||||
return
|
||||
}
|
||||
|
||||
uiChan = c
|
||||
|
||||
for _, l := range loggers {
|
||||
captureLogger("warn", l.Notepad.WARN)
|
||||
captureLogger("error", l.Notepad.ERROR)
|
||||
captureLogger("error", l.Notepad.FATAL)
|
||||
captureLogger(l)
|
||||
}
|
||||
}
|
||||
|
||||
func captureLogger(level string, l *log.Logger) {
|
||||
func captureLogger(l *Logger) {
|
||||
captureLogLevel("warn", l.Notepad.WARN)
|
||||
captureLogLevel("error", l.Notepad.ERROR)
|
||||
captureLogLevel("error", l.Notepad.FATAL)
|
||||
}
|
||||
|
||||
func captureLogLevel(level string, l *log.Logger) {
|
||||
re, err := regexp.Compile(`^\[[a-zA-Z0-9-]+\s*\] \w+ .{19} `)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue