-1

我得到一堆调试信息(没有设置任何东西),如下所示:

GET /echo/info 0ms 200
POST /echo/152/8_4fl_ep/xhr?t=1382556167337 0ms (unfinished)
GET /echo/info 0ms 200
POST /echo/876/st9gz4bi/xhr?t=1382556172720 0ms (unfinished)
GET /echo/info 0ms 200
GET /echo/info 0ms 200

我已经确定导致此问题的行如下:

var my_http = require("http");
var sockjs  = require('sockjs');

....
var server = my_http.createServer();
echo.installHandlers(server, {prefix:'/echo'}); // <---- This line causes it
server.listen(8081, '0.0.0.0'); 

似乎有什么在var my_http = require("http");

任何想法如何关闭它?我的日志被这些请求信息完全淹没

这是echo

var echo = sockjs.createServer();
echo.on('connection', function(conn) {
    conn.on('data', function(message) {});
    conn.on('close', function() {});
});
4

3 回答 3

0

尝试var echo = sockjs.createServer({log: function () {}});

从文档:

log (function(severity, message)) 查看 SockJS-node 库打印的一些消息非常有用,特别是对于调试而言。这是使用此log功能完成的,默认情况下设置为console.log. 如果此行为因某种原因让您烦恼,请log使用自定义处理程序覆盖设置。使用以下severities:(debug杂项日志),info(请求日志),error(严重错误,考虑提交问题)。

于 2013-10-23T19:51:12.140 回答
0

改变你的线路

echo.installHandlers(server, {prefix:'/echo'});

至:

echo.installHandlers(server, {
  log: function () {},
  prefix:'/echo'
});

那么日志记录应该消失了。如果您想将日志重定向到控制台以外的其他地方,您可以按如下方式使用它:

echo.installHandlers(server, {
  log: function (severity, message) {
    // Do whatever you want to do here…
  },
  prefix:'/echo'
});

message是不言自明的,可能severity是和之一。有关详细信息,请参阅SockJS 文档。虽然基本上是 SockJS 服务器的一个选项,但您可以在调用.debuginfoerrorloginstallHandlers

于 2013-10-23T19:51:34.600 回答
0

看起来它实际上来自 sockjs。从他们的文档中,您可以使用自己的函数覆盖他们的日志记录(并且可能使用严​​重性仅记录警告/错误):

var echo = sockjs.createServer({
    log: function (severity, message) {
        // Place your logging here if desired
    }
});
于 2013-10-23T19:52:03.763 回答