У меня есть настройки входа в Django, как это (ниже). Отсюда идет фильтр для идентификатора запроса: https://github.com/dabapps/django-log-request-id. Я настроил Loggly, следуя инструкциям здесь: https://www.loggly.com/docs/python-http/. Однако, похоже, что предоставленный им конфигурационный файл переопределяет стандартный форматтер, то есть он не включает request_id.
Есть ли способ, которым я могу использовать и request_id, и Loggly? По сути, я хотел бы, чтобы Loggly всегда регистрировал идентификатор request_id, который является уникальным и происходит от плагина log_request_id.filters.RequestIDFilter.
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'filters': {
'request_id': {
'()': 'log_request_id.filters.RequestIDFilter'
}
},
'formatters': {
'verbose': {
'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
},
'simple': {
'format': '%(levelname)s %(message)s'
},
'json': {
'format': '{ "loggerName":"%(name)s", "timestamp":"%(asctime)s", "fileName":"%(filename)s", "logRecordCreationTime":"%(created)f", "functionName":"%(funcName)s", "levelNo":"%(levelno)s", "lineNo":"%(lineno)d", "time":"%(msecs)d", "levelName":"%(levelname)s", "message":"%(message)s"}',
},
'standard': {
'format': '%(levelname)-8s [%(asctime)s] [%(request_id)s] %(name)s: %(message)s'
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'filters': ['request_id'],
'formatter': 'standard',
'stream': sys.stdout,
},
'loggly': {
'level': 'DEBUG',
'class': 'loggly.handlers.HTTPSHandler',
'filters': ['request_id'],
'formatter': 'standard',
'url': 'https://logs-01.loggly.com/inputs/TOKEN/tag/python',
},
},
'loggers': {
'django': {
'handlers': ['console', ],
'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
},
'root': {
'handlers': ['loggly', ],
'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
}
}
}