火力地堡功能:为Stackdriver控制台登录温斯顿

问题描述 投票:4回答:2

我不能让winston记录到日志写到stackdriver控制台。我(使用firebase deploy)部署我作为谷歌火力功能。 console记录工作正常,但我们并没有在项目中使用这样的工具。

我的尝试:

请建议......我已经厌倦了实验(每次重新部署需要时间)

node.js google-app-engine firebase logging winston
2个回答
2
投票

最后我做了什么 - 实施qazxsw POI引擎盖下这实际上要求qazxsw POI。这有助于。

custom transport

1
投票

因为它使用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。

© www.soinside.com 2019 - 2024. All rights reserved.