我们正在使用Node.js服务器,并在Google云端平台上提供日志。
问题是,如果我们做一个日志条目并且我们把对象放在里面,它被序列化为多行输出,它就不会“堆叠”。
因此,如果我们有100行的对象,它会在谷歌中创建100行输出,这实际上很难阅读,我们无法对其进行“分组”。
在其他服务中,输出始终是堆叠的(loggly,logsene)。
你知道如何叠加输入吗?我们使用Winston进行日志记录(将Console作为输出之一)
答案 0 :(得分:2)
尝试选择stackdriver' winston_log'。
默认情况下,您收到stdout,这给了我与多行相同的问题。
答案 1 :(得分:1)
这是解决方案(PS:感谢GordonHo在这个问题上给我打电话):
const winston = require('winston');
const config = require('config');
const _ = require('lodash');
function transportsMethod() {
const transports = [];
if (config.params.oneLineWinston === true) {
transports.push(new (winston.transports.Console)({
json: true,
stringify: (obj) => JSON.stringify(obj),
}));
} else {
transports.push(new (winston.transports.Console)({json: true}));
}
return transports;
}
const logger = new winston.Logger({
level: winstonLevel,
transports: transportsMethod(),
});
module.exports = logger;