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)