Fix log errors not forwarded to ui

This commit is contained in:
andig 2023-01-22 17:33:17 +01:00
parent 8410266116
commit 3faef17ffa

View file

@ -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)