docbow/docbow_project/log/handler.py

23 lines
676 B
Python

import logging
import datetime as dt
class LogToDbHandler(logging.Handler):
models = None
def __init__(self, *args, **kwargs):
logging.Handler.__init__(self, *args, **kwargs)
def emit(self, record):
if not self.models:
import models
self.models = models
message = self.format(record)
log_line = self.models.LogLine(timestamp=dt.datetime.now(),
levelname=record.levelname,
name=record.name,
ip=getattr(record, 'ip', 'None'),
user=str(getattr(record, 'user', 'Anonymous')),
message=message)
log_line.save(using='log')