diff --git a/src/Config.py b/src/Config.py index 87c11553..ea6f143e 100644 --- a/src/Config.py +++ b/src/Config.py @@ -7,6 +7,7 @@ import configparser import logging import logging.handlers import stat +import time class Config(object): @@ -647,9 +648,26 @@ class Config(object): logging.getLogger('').name = "-" # Remove root prefix + self.error_logger = ErrorLogHandler() + self.error_logger.setLevel(logging.getLevelName("ERROR")) + logging.getLogger('').addHandler(self.error_logger) + if console_logging: self.initConsoleLogger() if file_logging: self.initFileLogger() + +class ErrorLogHandler(logging.StreamHandler): + def __init__(self): + self.lines = [] + return super().__init__() + + def emit(self, record): + self.lines.append([time.time(), record.levelname, self.format(record)]) + + def onNewRecord(self, record): + pass + + config = Config(sys.argv) diff --git a/src/Ui/UiServer.py b/src/Ui/UiServer.py index edeed59d..9d93ccfd 100644 --- a/src/Ui/UiServer.py +++ b/src/Ui/UiServer.py @@ -14,17 +14,6 @@ from Debug import Debug import importlib -class LogDb(logging.StreamHandler): - def __init__(self, ui_server): - self.lines = [] - self.ui_server = ui_server - return super(LogDb, self).__init__() - - def emit(self, record): - self.ui_server.updateWebsocket(log_event=record.levelname) - self.lines.append([time.time(), record.levelname, self.format(record)]) - - # Skip websocket handler if not necessary class UiWSGIHandler(WebSocketHandler): @@ -93,10 +82,10 @@ class UiServer: self.site_manager = SiteManager.site_manager self.sites = SiteManager.site_manager.list() self.log = logging.getLogger(__name__) + config.error_logger.onNewRecord = self.handleErrorLogRecord - self.logdb_errors = LogDb(ui_server=self) - self.logdb_errors.setLevel(logging.getLevelName("ERROR")) - logging.getLogger('').addHandler(self.logdb_errors) + def handleErrorLogRecord(self, record): + self.updateWebsocket(log_event=record.levelname) # After WebUI started def afterStarted(self): diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py index 40e4bdad..599f6558 100644 --- a/src/Ui/UiWebsocket.py +++ b/src/Ui/UiWebsocket.py @@ -1123,7 +1123,7 @@ class UiWebsocket(object): @flag.admin @flag.no_multiuser def actionServerErrors(self, to): - return self.server.logdb_errors.lines + return config.error_logger.lines @flag.admin @flag.no_multiuser