plugin.video.viervijfzes/resources/lib/kodilogging.py
2020-03-19 16:45:31 +01:00

45 lines
1.2 KiB
Python

# -*- coding: utf-8 -*-
"""Log handler for Kodi"""
from __future__ import unicode_literals
import logging
import xbmc
import xbmcaddon
class KodiLogHandler(logging.StreamHandler):
""" A log handler for Kodi """
def __init__(self):
logging.StreamHandler.__init__(self)
addon_id = xbmcaddon.Addon().getAddonInfo("id")
formatter = logging.Formatter("[{}] [%(name)s] %(message)s".format(addon_id))
self.setFormatter(formatter)
def emit(self, record):
""" Emit a log message """
levels = {
logging.CRITICAL: xbmc.LOGFATAL,
logging.ERROR: xbmc.LOGERROR,
logging.WARNING: xbmc.LOGWARNING,
logging.INFO: xbmc.LOGINFO,
logging.DEBUG: xbmc.LOGDEBUG,
logging.NOTSET: xbmc.LOGNONE,
}
try:
xbmc.log(self.format(record), levels[record.levelno])
except UnicodeEncodeError:
xbmc.log(self.format(record).encode('utf-8', 'ignore'), levels[record.levelno])
def flush(self):
""" Flush the messages """
def config():
""" Setup the logger with this handler """
logger = logging.getLogger()
logger.addHandler(KodiLogHandler())
logger.setLevel(logging.DEBUG)