我想使用 Winston 作为 Socket.io 的记录器。我看过this issue它说:
var io = require('socket.io').listen(8080);
io.set('logger', { debug: <log function>, info: … , error: .., warn: .. })
很遗憾,没有描述log函数
应该是什么样子。
有些人在玩,看看Socket.io logger documentation告诉我没有固定的参数集:有一个、两个和三个参数的日志消息。也许还有更多,我不知道。
我认为使用未定义数量的参数绝对不是一个好习惯,尤其是当这是您与外部组件的接口(interface)时。
无论如何...有人有这方面的经验吗?谁能指出要注意什么?
最佳答案
这对我来说似乎很好用
var io = require('socket.io').listen(server, {
logger: {
debug: winston.debug,
info: winston.info,
error: winston.error,
warn: winston.warn
}
});
作为奖励,通过在与 .listen()
相同的调用中设置记录器,您可以捕获来自 Socket.IO 的所有日志输出。请注意,您应该能够只传递 winston
而不是该对象,但它对我不起作用,所以这就是我发布此解决方案的原因。
关于node.js - 如何通过 Winston 登录 Socket.io?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18142217/