Move error log handler to config object to be able to catch plugin load errors
This commit is contained in:
parent
49f8e0bc3a
commit
b9c65d75ef
3 changed files with 22 additions and 15 deletions
|
@ -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)
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue