Неправильный формат JSON Amazon Cloudwatch - PullRequest
0 голосов
/ 07 декабря 2018

Я регистрирую запросы и ответы на умения Amazon в функции Lambda моего умения Alexa.Это объекты JSON, которые я регистрирую следующим образом:

logger.debug('Incoming request:\n' + JSON.stringify(event, null, 2));

logger.debug('Final response:\n' + JSON.stringify(alexaResponse, null, 2) + '\n\n');

При просмотре журналов в Cloudwatch с помощью Expand all = Row я вижу это:

Cloudwatch Log с Expand all setв строку

Когда я установил параметр Развернуть все в текст, результат будет немного лучше, но начальные пробелы будут обрезаны, что приведет к потере структуры отступов в документе JSON.

Cloudwatch Log with Expand all установлен в Text

Я получил этот код из учебника.Вполне возможно, что изменения в Amazon Cloudwatch привели к сбою кода, который работал в этом руководстве.

В учебном пособии вывод выглядит следующим образом:

Снимок экрана учебного пособия

Это вывод журнала, который я хочу.Как мне это получить?

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Мои журналы cloudwatch автоматически отображают строки JSON так, как вы этого хотите, без использования необязательных 2-го и 3-го аргументов JSON.stringify ()

Поэтому попробуйте удалить нуль и 2 из JSON.stringify вашего оператора журнала.

logger.debug('Incoming request: \n' + JSON.stringify(event));

logger.debug('Final response: \n '+ JSON.stringify(alexaResponse));

Я не на своем компьютере для тестирования, но я думаю, что новая строка (\ n) должна дать вам желаемый эффект в cloudwatch, поместив json в собственную строку, которую вы можете расширить.И это дополнительный пробел, который заставляет cloudwatch устанавливать новые строки в JSON.

0 голосов
/ 07 декабря 2018

Имея ограниченный опыт, все новые строки конвертируются в отдельную запись журнала.ИМХО он ведет себя как регистратор строк, а не как регистратор записей.

Итак, вы можете удалить новые строки из записей журнала при отправке в cloudwatch.

Должно автоматически отображатьсяlog json в отформатированной структуре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...