我不能让winston记录到日志写到stackdriver控制台。我(使用firebase deploy
)部署我作为谷歌火力功能。 console
记录工作正常,但我们并没有在项目中使用这样的工具。
我的尝试:
winston.add(require('@google-cloud/logging-winston')); winston.log('error', 'Winston error!');
并且还与参数,如项目ID projectId
/服务帐户JSON凭证添加文件keyFilename
);请建议......我已经厌倦了实验(每次重新部署需要时间)
最后我做了什么 - 实施qazxsw POI引擎盖下这实际上要求qazxsw POI。这有助于。
custom transport
因为它使用console.log
当它可用,这是不以火力地堡函数接受温斯顿的默认控制台传输失败。
现在有一个const winston = require('winston');
const util = require('util');
const ClassicConsoleLoggerTransport = winston.transports.CustomLogger = function (options) {
options = options || {};
this.name = 'ClassicConsoleLoggerTransport';
this.level = options.level || 'info';
// Configure your storage backing as you see fit
};
util.inherits(ClassicConsoleLoggerTransport, winston.Transport);
ClassicConsoleLoggerTransport.prototype.log = function (level, msg, meta, callback) {
let args = [msg, '---', meta];
switch (level) {
case 'verbose':
case 'debug':
console.log.apply(null, args);
break;
case 'notice':
case 'info':
console.info.apply(null, args);
break;
case 'warn':
case 'warning':
console.warn.apply(null, args);
break;
case 'error':
case 'crit':
case 'alert':
case 'emerg':
console.error.apply(null, args);
break;
default:
console.log.apply(null, args);
}
callback(null, true);
};
你可以试试。还没有使用它,它需要节点console._stdout.write
如果你使用温斯顿3。