23 lines
676 B
Python
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')
|
|
|