Nodejs关闭http调试信息

时间:2013-10-23 19:25:09

标签: node.js

我收到了一堆调试信息(没有设置任何内容),如下所示:

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() {});
});

3 个答案:

答案 0 :(得分:0)

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

来自文档:

  

log(功能(严重性,消息))   特别是对于调试来说,查看由SockJS节点库打印的一些消息非常有用。这是使用此log函数完成的,该函数默认设置为console.log。如果由于某种原因此行为使您烦恼,请使用自定义处理程序覆盖log设置。使用了以下severitiesdebug(杂项日志),info(请求日志),error(严重错误,请考虑提交问题)。

答案 1 :(得分: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可能是debuginfoerror之一。有关详细信息,请参阅SockJS documentation。虽然log基本上是SockJS服务器的一个选项,但您可以在调用installHandlers时覆盖它。

答案 2 :(得分:0)

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

var echo = sockjs.createServer({
    log: function (severity, message) {
        // Place your logging here if desired
    }
});