Log Monitor

The log monitor system redirects application logs to an SQLite3 database for persistence. Also registers a global sys.excepthook, and logs all uncaught exceptions.

LogMonitorWidget

A very powerful log monitor widget that connects to the local log database, providing a live view of application logs.

Store multiple profiles of advanced filters: - text filter - query limit - limit to current application session - individually enable/disable log sources - individually enable/disable every log level of every source

LogMonitorDockWidget

a LogMonitorWidget wrapped in a QDockWidget

LogMonitorDropdown

a LogMonitorWidget wrapped in an application-covering drop down panel

Installing the log monitor:

from qtstrap import *
from qtstrap.extras import log_monitor


# give a custom name to the uncaught exception handler
log_monitor.exception_logger_name = 'your_application.exceptions'

# install the log handler
log_monitor.install()


class MainWindow(BaseMainWindow):
    def __init__(self, parent=None) -> None:
        super().__init__(parent=parent)

        # create an instance of the dropdown version of the log monitor
        self.log_monitor = log_monitor.LogMonitorDropdown(self, shortcut='ctrl+`')

        # create a statusbar, which contains a settings button and a settings menu
        self.create_statusbar()

        # add the log monitor's toggle view action to the settings menu
        self.settings_menu.addAction(self.log_monitor.toggleViewAction())