Уровень журнала Google Stackdriver не установлен в App Engine Flex (узел) - PullRequest
0 голосов
/ 13 марта 2019

Я пытался использовать разные уровни журнала в моем развертывании App Engine Flexible Node, но безрезультатно.

Моей первой попыткой было просто использовать console.info, console.warn и т. Д.

Затем я попытался использовать Winston, как описано в этих документах .

app.get('/testlog', (req, res) => {
  // Writes some log entries
  logger.silly('silly');
  logger.debug('debug');
  logger.info('info');
  logger.warn('warn');
  logger.error('error');
  res.send("Logs written")
})

Локально он будет записывать журналы в «глобальную» область действия Stackdriver и содержать уровни журналов. Однако при развертывании он будет писать в «Приложение GAE», но без каких-либо уровней.

Можно ли устанавливать уровни в Stackdriver при развертывании в App Engine?

1 Ответ

0 голосов
/ 30 апреля 2019

Когда он запускается в любой среде, которая не является App Engine Flex или Google Cloud Functions , программа регистрации Winston регистрирует напрямую в API ведения журнала Stackdriver.По-видимому, в App Engine Flex и облачных функциях Google он регистрируется в stdout.

Стандартная конфигурация агента ведения журналов Stackdriver для App Engine Flex обнаружит однострочный JSON и преобразует его в jsonPayload.Если вы хотите более детальный контроль над серьезностью, вы можете настроить Winston для регистрации в виде однострочного 1 JSON и позволить агенту ведения журнала подобрать серьезность из объекта JSON (см. https://cloud.google.com/logging/docs/agent/configuration#process-payload).

1 См. Как изменить вывод моего файла Winston JSON на одну строку

...