Ведение журнала Python с контекстомPython

Программы на Python
Ответить
Anonymous
 Ведение журнала Python с контекстом

Сообщение Anonymous »

У меня есть настройка ведения журнала в приложении Python, которое регистрируется в файле и MongoDB. Настройка выглядит следующим образом:

Код: Выделить всё

[logger_root]
handlers=myHandler,mongoHandler
level=DEBUG
qualname=myapp

[handler_myHandler]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=myFormatter
args=('myapp.log', 'a',20000000,10)

[handler_mongoHandler]
class=myapp.MongoLogger.MongoLogger
level=INFO
args=('log',)

[formatter_myFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
А в MongoLogger есть такая функция submit():

Код: Выделить всё

def emit(self, record):
logdata = record.__dict__
try:
if(self.data == None):
self.initDb()
self.logtable.insert(logdata)
except:
self.handleError(record)
Тогда журналирование осуществляется следующим образом:

Код: Выделить всё

 logger.info("Processing account %s..." % account)
Это работает достаточно хорошо, но теперь у меня есть дополнительное требование. Я хочу, чтобы у него был некоторый контекст, т. е. возможность определять пользовательское значение, скажем, имя учетной записи, чтобы каждый журнал, выполняемый внутри обработки учетной записи, имел имя учетной записи как часть записи, передаваемой для отправки выше, а также доступной для форматировщика в строке myFormatter.

Можно ли сделать это с помощью модуля регистрации? Может быть, есть другой, лучший способ сделать то же самое?

Подробнее здесь: https://stackoverflow.com/questions/661 ... th-context
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»