如何插入socket.io的内置日志系统来生成我自己的消息?

dre*_*www 7 logging node.js socket.io

socket.io似乎有一个基本上合理的日志记录系统的所有内部.我如何自己获取该日志记录对象,以便在适当的级别生成自己的日志消息?让我感到console.log()困惑的是,我的消息在socket.io消息旁边没有时间戳,没有水平和丑陋.我已经在socket.io代码中进行了大量的探索,而我现在对于节点还不够精明,无法理解对象层次结构是什么样的,知道如何从我的代码中获取我想要的对象.

从长远来看,我可能想要一个更强大的日志记录系统模块(能够记录文件,自动轮换,按模块管理级别,自定义日志级别等).温斯顿看起来很明智,但我也可以socket.io使用它吗?把所有东西放在一个地方真好.

Kat*_*ato 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));
Run Code Online (Sandbox Code Playgroud)

配置记录器也很简单:

io.configure('production', function(){
  io.set('log level', 1);
}
Run Code Online (Sandbox Code Playgroud)