如何通过WinstonloginSocket.io?

我想使用Winston作为Socket.io的logging器。 我看到这个问题 ,它说:

var io = require('socket.io').listen(8080); io.set('logger', { debug: <log function>, info: … , error: .., warn: .. }) 

不幸的是,它没有描述log function应该是什么样子。

有些玩耍,看了一下Socket.iologging器的文档告诉我,没有固定的参数集:有一个,两个和三个参数的日志消息。 也许还有更多,我不知道。

我认为这肯定不是一个好的做法,有一个未定义数量的参数,特别是如果这是您的外部组件的接口。

无论如何…有没有人有这方面的经验? 任何人都可以指出要注意什么?

这似乎对我很好

 var io = require('socket.io').listen(server, { logger: { debug: winston.debug, info: winston.info, error: winston.error, warn: winston.warn } }); 

作为奖励,通过将logging器设置为与.listen()相同的调用,可以捕获来自Socket.IO的所有日志输出。 请注意,您应该能够传递winston而不是该对象,但它不适用于我,所以这就是为什么我已经发布此解决scheme。

您可以简单地插入winston实例作为logging器对象:

 var winston = require('winston'); io.set('logger', winston); 

由于socket.io v1.0logging器参数不再工作。 他们切换到debugging

你可以参考这个问题关于如何使用socket.io来设置Winston