У меня есть настройки регистрации в приложении 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 имеет функцию emit (), например, такую:
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)
Работает достаточно хорошо, но теперь у меня есть дополнительное требование.Я хочу, чтобы он имел некоторый контекст - то есть, чтобы иметь возможность определять пользовательское значение - скажем, имя учетной записи - чтобы каждый журнал, выполненный в процессе обработки учетной записи, имел имя учетной записи как часть record
, переданного emit
выше итакже доступен для форматера в строке myFormatter
.
Возможно ли это сделать с помощью модуля регистрации?Может быть, есть другой, лучший способ сделать то же самое?