socket.io
似乎对其所有内部都有一个基本合理的记录系统。我如何自己获取该日志记录对象,以便在适当的级别生成自己的日志消息?我的console.log()
消息在socket.io
消息旁边没有加盖时间戳,不平整且丑陋,这让我感到困惑。我已经在socket.io
代码中完成了大量的探索,我对此处的节点不够精明,无法理解对象层次结构是什么样的,知道如何从我的代码中获取我想要的对象
从长远来看,我可能想要一个更强大的日志系统模块(能够记录文件,自动轮换,按模块管理级别,自定义日志级别等)。 Winston看起来很明智,但我也可以socket.io
使用它吗?把所有东西放在一个地方真好。
答案 0 :(得分:8)
在使用socket.io时,我能够像这样插入现有的记录器模块:
var express = require('express'),
app = module.exports = express.createServer(), //just creating 'app' for io
io = require('socket.io').listen(app),
logger = io.log, // access the existing logger setup in socket.io
util = require('util');
logger.info(util.format("Express server listening on port %d in %s mode", 8003, app.settings.env));
io.configure('production', function(){
io.set('log level', 1);
}
答案 1 :(得分:3)
您是否考虑过使用Connect中的记录器中间件?看起来有人已经为您想要的名称socket.IO-connect创建了一个库。我在Express程序中使用类似的东西:
var connect = require('connect');
module.exports = connect.createServer(
connect.logger({ format: ':response-time :method :url' }),
connect.static(__dirname + '/public)
);