certidude/certidude/mysqllog.py

27 lines
834 B
Python

import logging
import time
from datetime import datetime
from certidude.relational import RelationalMixin
class LogHandler(logging.Handler, RelationalMixin):
SQL_CREATE_TABLES = "log_tables.sql"
def __init__(self, uri):
logging.Handler.__init__(self)
RelationalMixin.__init__(self, uri)
def emit(self, record):
self.sql_execute("log_insert_entry.sql",
datetime.utcfromtimestamp(record.created),
record.name,
record.levelno,
record.levelname.lower(),
record.msg % record.args, record.module,
record.funcName,
record.lineno,
logging._defaultFormatter.formatException(record.exc_info) if record.exc_info else "",
record.process,
record.thread,
record.threadName)