summaryrefslogtreecommitdiff
path: root/plugin.video.rtpplay/resources/lib/kodilogging.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugin.video.rtpplay/resources/lib/kodilogging.py')
-rw-r--r--plugin.video.rtpplay/resources/lib/kodilogging.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/plugin.video.rtpplay/resources/lib/kodilogging.py b/plugin.video.rtpplay/resources/lib/kodilogging.py
new file mode 100644
index 0000000..5f42ab7
--- /dev/null
+++ b/plugin.video.rtpplay/resources/lib/kodilogging.py
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-
+
+from __future__ import unicode_literals
+from resources.lib.kodiutils import get_setting_as_bool
+
+import logging
+import xbmc
+import xbmcaddon
+
+
+class KodiLogHandler(logging.StreamHandler):
+
+ def __init__(self):
+ logging.StreamHandler.__init__(self)
+ addon_id = xbmcaddon.Addon().getAddonInfo('id')
+ prefix = b"[%s] " % addon_id
+ formatter = logging.Formatter(prefix + b'%(name)s: %(message)s')
+ self.setFormatter(formatter)
+
+ def emit(self, record):
+ 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,
+ }
+ if get_setting_as_bool('debug'):
+ 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):
+ pass
+
+
+def config():
+ logger = logging.getLogger()
+ logger.addHandler(KodiLogHandler())
+ logger.setLevel(logging.DEBUG)