''' Logging handler for QGis @author: olivier.massot, 2018 ''' import logging from qgis.core import QgsMessageLog _to_qgis_level = {logging.DEBUG: 0, logging.INFO: 0, logging.WARNING: 1, logging.ERROR: 2, logging.CRITICAL: 2, logging.NOTSET: 4} class QgsLogHandler(logging.Handler): _qgs_iface = None @classmethod def connect_to_iface(cls, iface): cls._qgs_iface = iface def emit(self, record): try: msg = self.format(record) level = record.levelno QgsMessageLog.logMessage(msg, "Mnheck", _to_qgis_level[level]) if self._qgs_iface and record.levelno >= logging.WARNING: self._qgs_iface.messageBar().pushMessage("MnCheck", msg, level=_to_qgis_level[level]) except (KeyboardInterrupt, SystemExit): raise except: self.handleError(record)