Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 12, 2013 20:12:27

dmc
От:
Зарегистрирован: 2010-01-25
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Логгирование в базу

Такая задача:
есть некоторый класс, который отвечает за обработку файлов. Т.е. на вход получает его имя и дальше производит его обработку:

class loader():
    def __init__(self, file=...):
        self.file = file
        ...
    def func1(self):
        ...
необходимо добавить в него логгинг, и запись итогового лога в базу. Т.е. инициализируем обработку, после которой начинают сыпаться информация в лог. по завершении мы ее собираем всю, и сохраняем в текстовое поле БД. Параллельно может быть инициализировано несколько обработчиков и у каждого должен быть отдельный лог.
Насколько я понял, нужно в настройках проекта в LOGGING добавить специальный handler, и тогда код станет таким:
class loader():
    def __init__(self, file=...):
        logger_loader = logging.getLogger('loader_info')
        self.file = file
        ...
    def func1(self):
        ...
        logger_loader.info(u'....')
    def savetobase(self):
        # собираем все логгеры, создаем запись в БД и пишем весь текст туда
Вопрос: какой хендлер подойдет для данной задачи? Никак не соображу :( были идеи сделать через MemoryHandler либо FileHandler. Может кто сталкивался с такой задачей, буду признателен за подсказку.



Отредактировано dmc (Янв. 12, 2013 20:15:06)

Офлайн

#2 Янв. 22, 2013 15:06:15

inoks
От: Russia
Зарегистрирован: 2012-12-11
Сообщения: 343
Репутация: +  35  -
Профиль   Адрес электронной почты  

Логгирование в базу

посмотри на этот проект, он пишет логи в базу напрямую, думаю сможешь на базе него реализовать свои потербности
https://github.com/dcramer/django-db-log

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version