Add a log handler for external python modules

This commit is contained in:
Spencer McIntyre
2018-03-21 10:14:49 -04:00
parent b8b0ed4353
commit 3aa37eb266
@@ -1,8 +1,43 @@
import json
import logging
import os
import sys
class LogFormatter(logging.Formatter):
def __init__(self, prefix, *args, **kwargs):
super(LogFormatter, self).__init__(*args, **kwargs)
self.prefix = prefix
def format(self, record):
return self.prefix + record.msg
class LogHandler(logging.Handler):
def emit(self, record):
level = 'debug'
if record.levelno >= logging.ERROR:
level = 'error'
elif record.levelno >= logging.WARNING:
level = 'warning'
elif record.levelno >= logging.INFO:
level = 'info'
log(self.format(record), level)
return
@classmethod
def setup(cls, level=logging.DEBUG, name=None, msg_prefix=None):
logger = logging.getLogger(name)
handler = cls()
if level is not None:
logger.setLevel(level)
if msg_prefix is not None:
handler.setFormatter(LogFormatter(msg_prefix))
logger.addHandler(handler)
return handler
def log(message, level='info'):
rpc_send({'jsonrpc': '2.0', 'method': 'message', 'params': {
'level': level,