lib*_*bik 7 javascript logging node.js google-cloud-platform
我们正在使用 Node.js 服务器并在 Google Cloud Platform 上有日志。
问题是,如果我们做一个日志条目并将对象放入其中,该对象被序列化为多行输出,则它不是“堆叠”的。
因此,如果我们有 100 行的对象,它会在 google 中创建 100 行输出,这真的很难阅读,我们无法对其进行“分组”。
在其他服务中,输出总是堆叠的(loggly、logsene)。
你知道如何堆叠输入吗?我们正在使用 Winston 进行日志记录(将控制台作为输出之一)
这就是解决方案(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;
Run Code Online (Sandbox Code Playgroud)