pinecrypt-gateway-backend/pinecrypt/server/mongolog.py

28 lines
952 B
Python

import logging
from datetime import datetime
from pinecrypt.server import db
class LogHandler(logging.Handler):
def emit(self, record):
d= {}
d["created"] = datetime.utcfromtimestamp(record.created)
d["facility"] = record.name
d["level"] = record.levelno
d["severity"] = record.levelname.lower()
d["message"] = record.msg % record.args
d["module"] = record.module
d["func"] = record.funcName
d["lineno"] = record.lineno
d["exception"] = logging._defaultFormatter.formatException(record.exc_info) if record.exc_info else "",
d["process"] = record.process
d["thread"] = record.thread
d["thread_name"] = record.threadName
db.eventlog.insert(d)
def register():
for j in logging.Logger.manager.loggerDict.values():
if isinstance(j, logging.Logger):
j.setLevel(logging.DEBUG)
j.addHandler(LogHandler())