Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging 如何插入socket.io';是内置的日志系统来生成我自己的消息吗?_Logging_Node.js_Socket.io - Fatal编程技术网

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

Logging 如何插入socket.io';是内置的日志系统来生成我自己的消息吗?,logging,node.js,socket.io,Logging,Node.js,Socket.io,socket.io似乎对其所有内部都有一个基本合理的日志系统。我自己如何获取该日志对象,以便在适当级别生成自己的日志消息?我的console.log()消息在socket.io消息旁边是未加时间戳、未分级和丑陋的,这让我很恼火。我在socket.io代码中做了很多探索,但我对节点的了解还不够,无法理解对象层次结构是什么样子,无法知道如何从代码中获取所需的对象 从长远来看,我可能需要一个更健壮的日志系统模块(能够记录到文件、自动旋转、基于每个模块管理级别、自定义日志级别等)。看起来很合理,但是我可

socket.io
似乎对其所有内部都有一个基本合理的日志系统。我自己如何获取该日志对象,以便在适当级别生成自己的日志消息?我的
console.log()
消息在
socket.io
消息旁边是未加时间戳、未分级和丑陋的,这让我很恼火。我在
socket.io
代码中做了很多探索,但我对节点的了解还不够,无法理解对象层次结构是什么样子,无法知道如何从代码中获取所需的对象


从长远来看,我可能需要一个更健壮的日志系统模块(能够记录到文件、自动旋转、基于每个模块管理级别、自定义日志级别等)。看起来很合理,但是我可以让
socket.io
也使用它吗?把所有的东西都放在一个地方会很好。

您有没有考虑过使用来自的记录器中间件?看起来有人已经为你想要的东西创建了一个库。我在程序中使用了类似的东西:


在使用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);
}

这很有希望!明天我将更仔细地研究它,看看它是否强制socket io通过connect中间件路由其日志消息。我的回退策略是只将套接字日志设置为0,并使用Winston进行所有我自己的日志记录。我将失去一些低级访问权限,但如果我在套接字级别遇到问题,我会遇到更大的问题,需要进行更精细的调试。
io.configure('production', function(){
  io.set('log level', 1);
}