Как я могу войти в систему `DEBUG` в lambda через `process.stdout.записать`?

#node.js #amazon-web-services #aws-lambda #amazon-cloudwatch

#node.js #amazon-веб-сервисы #aws-lambda #amazon-cloudwatch

Вопрос:

Когда я использую console.log в своем nodejs lambda, необработанные данные журнала, отображаемые в cloudwatch, имеют временную метку в качестве префикса.

Например, console.log({a:1, b:2} , будет регистрироваться

 2020-09-21T13:05:02.312Zt332c382e-605f-453f-b767-604dd5f542abtINFOt{ a: 1, b: 2 }n
  

Я знаю, что люди говорят об использовании process.stdout.write , но я не знаю, как регистрировать DEBUG уровень в cloudwatch. Все stdout.write будет показано как INFO .

Комментарии:

1. Ваша цель — удалить префиксы уровня ведения журнала, такие как INFO, DEBUG, WARN? Не могли бы вы уточнить?

Ответ №1:

Если вы последуете этому примеру https://docs.aws.amazon.com/lambda/latest/dg/nodejs-logging.html

 console.log or console.info (INFO)
console.warn (WARN)
console.debug (DEBUG)
  

Я бы рекомендовал использовать библиотеки регистраторов, такие как pino или winston регистраторы, где гораздо больше контроля над протоколированием.

Комментарии:

1. консоль. журнал — это тот, которого мне нужно избегать из-за проблемы в моем сообщении. Итак, я ищу использование стандартного вывода. напишите, чтобы удалить весь префикс.

2. @JoeyYiZhao Почему бы тебе не использовать настоящий регистратор и не попробовать подключиться к нему?

3. что вы имеете в виду real logger ?