我一直试图在我的App Engine灵活节点部署中使用不同的日志级别,但无济于事。
我的第一次尝试只是使用console.info,console.warn等。
然后,我尝试使用这些docs中描述的温斯顿。
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 Application”,但没有任何级别。
是否可以在部署到App Engine时在Stackdriver中设置级别?
当它在any environment that isn't App Engine Flex or Google Cloud Functions中运行时,Winston记录器直接记录到Stackdriver Logging API。显然,在App Engine Flex和Google Cloud Functions上它会记录到stdout。
App Engine Flex的默认Stackdriver日志代理配置将检测单行JSON并将其转换为jsonPayload
。如果您希望对严重性进行更精细的控制,可以将Winston配置为单行1 JSON,并让日志代理从JSON对象中获取severity(请参阅https://cloud.google.com/logging/docs/agent/configuration#process-payload)。
1见How do I change my node winston JSON output to be single line