Я пытаюсь отформатировать свои журналы таким образом, чтобы Google Cloud правильно извлек уровень журнала.Это работает на Cloud Run, с машинописью.Cloud Run получает журналы из вывода контейнера.
Если я сделаю следующее, Google правильно проанализирует строку журнала:
console.log(JSON.stringify({
severity: 'ERROR',
message: 'This is testing a structured log error for GCP'
}));
И вывод журнала будет выглядеть следующим образом: 
Я пробовал несколько разных способов форматирования с помощью winston, в итоге получилось следующее:
useFormat = format.combine(
format((info, opts) => {
info['severity'] = info.level;
delete info.level;
return info;
})(),
format.json());
this.winston = winston.createLogger({
level: logLevel,
format: useFormat,
transports: [new winston.transports.Console()]
});
, который выглядит так, как будто он будет работать (правильновыводит строку json), я получаю это в журналах GCP: 
Любая помощь приветствуется.