Я пытаюсь добавить номер запроса в журнал для каждого запроса:
С модулем регистрации Python я смог использовать команду ниже, чтобы добавить идентификатор для каждого журнала:
id = uuid();
logger = logging.loggerAdapter(logging.getlogger('root'), {"RequestNumber" : id});
logger.info('this is a log message')
При ведении журнала Bunyan
import bunyan
import logging
import sys
logger = logging.getLogger()
#logger = logging.loggerAdapter(logging.getlogger('root'), {"RequestNumber" : id});
config = {
'formatters': {
'bunyan': {
'()' : 'bunyan.BunyanFormatter'
}
},
'handlers': {
'debug': {
'class': 'logging.StreamHandler',
'formatter': 'bunyan',
'stream': 'ext://sys.stdout'
},
},
'root': {
'level': 'DEBUG',
'handlers': ['debug']
},
'version': 1
}
import logging.config
logging.config.dictConfig(config)
logger.debug("This is a log message")
logger.debug("This is a log message")
logger.debug("This is a log message")
Но в документации на языке Bunyan найден единственный способ добавить дополнительный словарь, как показано ниже:
logger.debug("This is a log message with extra context", extra = {'some': 'additional data'})
проблема в том, что RequestNumber должен добавляться в каждой команде журнала.
Есть ли способ использовать loggerAdapter с bunyan?