Стандартное окружение второго поколения (которое включает в себя Python 3.7) ИМХО ближе к гибкой среде, чем к стандартному окружению первого поколения (которое включает в себя Python 2.7).
Многие из API, которые имели настроенные версии для 1-го поколения (поддерживаемые командой GAE), не были (или, по крайней мере, пока) не портированы во 2-м поколении, если соответствующая функциональность была более или менее охвачена альтернативным, более общим подходы, уже используемые в гибкой среде (большинство из них основано на услугах, разработанных и поддерживаемых командами, отличными от GAE).
Вы заметите сходство между многими разделами службы в этих двух руководствах по миграции (что привело меня к приведенному выше краткому выводу):
Регистрация - это одна из служб, перечисленных в обоих руководствах. В первом поколении использовалась настроенная версия стандартной библиотеки python logging
(это было до того, как Stackdriver стал автономной службой). Для 2-го поколения ведение журнала было просто делегировано для использования теперь общедоступной службы Stackdriver logging (именно из этого взят фрагмент, который вы показали). Из журнала (в 1-м руководстве):
Журналы запросов больше не коррелируются автоматически, но будут
появляются в журнале Stackdriver. Используйте клиент регистрации Stackdriver
библиотеки для реализации желаемого поведения ведения журнала.
Фрагмент кода, который вы показываете, действительно соответствует регистрации в Stackdriver. Но вы, похоже, используете клиентскую библиотеку напрямую. Я не знаю, если это проблема (GAE часто немного отличается), но, возможно, вы также можете попробовать , используя вместо этого стандартное ведение журнала Python :
Чтобы отправить все записи журнала в Stackdriver, подключив Stackdriver
Обработчик входа в корневую учетную запись Python, используйте setup_logging
вспомогательный метод:
# Imports the Google Cloud client library
import google.cloud.logging
# Instantiates a client
client = google.cloud.logging.Client()
# Connects the logger to the root logging handler; by default this captures
# all logs at INFO level and higher
client.setup_logging()
Как только обработчик присоединен, любые журналы по умолчанию на уровне INFO или
выше, которые указаны в вашей заявке, будет отправлен
Регистрация в стеке:
# Imports Python standard library logging
import logging
# The data to log
text = 'Hello, world!'
# Emits the data using the standard logging module
logging.warn(text)
Там также есть некоторые специфичные для GAE заметки (но я не уверен, что они также охватывают стандартное env 2-го поколения):
Google App Engine по умолчанию предоставляет роль средства записи журналов .
Библиотека журналов Stackdriver для Python может использоваться без необходимости
явно предоставить учетные данные.
Ведение журнала Stackdriver автоматически включается для App Engine
Приложения. Никаких дополнительных настроек не требуется.
Примечание : Журналы, записанные в stdout и stderr , автоматически отправляются в Stackdriver Logging за вас, без необходимости использования
Библиотека журналов Stackdriver для Python.
Возможно, стоит отметить, что просмотр журналов , вероятно, будет отличаться и за пределами стандартного env 1-го поколения (где журналы приложений будут аккуратно соотнесены с журналами запросов).
А также Использование регистрации в Stackdriver в приложениях App Engine . В нем конкретно не упоминается стандартная среда env 2-го поколения (поэтому может потребоваться обновление), но есть полезные советы для гибкой среды, которая может быть полезной. Например, Связывание журналов приложений и запросов раздел может представлять интерес, если корреляция отсутствующих журналов запросов имеет какое-либо отношение к этому.