QHandler.py 938 B

12345678910111213141516171819202122232425262728293031323334
  1. '''
  2. @author: olivier.massot, 2018
  3. '''
  4. import logging
  5. from qgis.core import QgsMessageLog
  6. _to_qgis_level = {logging.DEBUG: 0,
  7. logging.INFO: 0,
  8. logging.WARNING: 1,
  9. logging.ERROR: 2,
  10. logging.CRITICAL: 2,
  11. logging.NOTSET: 4}
  12. class QHandler(logging.Handler):
  13. _qgs_iface = None
  14. def emit(self, record):
  15. try:
  16. msg = self.format(record)
  17. level = record.levelno
  18. QgsMessageLog.logMessage(msg, "Mnheck", _to_qgis_level[level])
  19. if QHandler._qgs_iface and record.levelno >= logging.WARNING:
  20. QHandler._qgs_iface.messageBar().pushMessage("MnCheck", msg, level=_to_qgis_level[level])
  21. except (KeyboardInterrupt, SystemExit):
  22. raise
  23. except:
  24. self.handleError(record)