Используя приведенный ниже код, я отправляю электронное письмо с сообщением об ошибке. Я пытаюсь включить ссылку в журналы Cloud Console в письме, но идентификатор запроса кажется неправильным примерно в 30% случаев.
Если я нахожу запрос с неправильным идентификатором, он всегда почти идеально подходит, за исключением трех последних символов: 0
(в консоли Stackdriver) вместо 101
(возвращается из переменной env), всегда одна и та же замена - Это ошибка с облачной консолью или я пытаюсь использовать эти идентификаторы неправильно?
Код (урезанная версия):
class ErrorAlertMiddleware(object):
def process_response(self, request, response):
if response.status_code == 500:
logger.info(os.environ.get('REQUEST_LOG_ID'))
msg = 'Link to logs: https://console.cloud.google.com/logs/viewer?' + '&'.join((
'project=%s' % MY_APP_ID,
'expandAll=true',
'filters=request_id:%s' % os.environ.get('REQUEST_LOG_ID'),
'resource=gae_app',
))
# this is a utility func that simply sends email
sendemail(ERROR_RECIPIENT, msg)
return response
Примечание. Я также зарегистрировал REQUEST_LOG_ID, чтобы убедиться, что он не закодирован или что-то еще, а выход журнала соответствует тому, что показано в ссылке