启用 socket.io 后无法记录请求
can't log requests when socket.io enabled
我正在尝试调试 socket.io 问题。为了弄清楚发生了什么,我想记录所有请求,所以我安装了 morgan。
var express = require('express');
var app = express();
app.use(require('morgan')('dev'));
var path = require('path');
var http = require('http').Server(app);
var io = require('socket.io')(http); // this line prevents morgan from logging
日志记录工作正常,直到我需要 socket.io- 最后一行显然阻止了摩根看到所有请求。
为什么 socket.io 阻止堆栈的其余部分看到请求?
编辑:
一些解释here:显然socket.io太冗长了,默认情况下调试是关闭的。如果我在我的环境中设置 运行 和 DEBUG=*
,我会得到更多信息。
虽然这对堆栈的其余部分来说似乎相当不友好。
是的 DEBUG=*
可能过于冗长,但调试模块还允许您指定逗号分隔的通配符模式列表。一些例子:
DEBUG=socket.io*
DEBUG=socket.io*,engine:*
DEBUG=socket.io:socket,engine:socket
我正在尝试调试 socket.io 问题。为了弄清楚发生了什么,我想记录所有请求,所以我安装了 morgan。
var express = require('express');
var app = express();
app.use(require('morgan')('dev'));
var path = require('path');
var http = require('http').Server(app);
var io = require('socket.io')(http); // this line prevents morgan from logging
日志记录工作正常,直到我需要 socket.io- 最后一行显然阻止了摩根看到所有请求。
为什么 socket.io 阻止堆栈的其余部分看到请求?
编辑:
一些解释here:显然socket.io太冗长了,默认情况下调试是关闭的。如果我在我的环境中设置 运行 和 DEBUG=*
,我会得到更多信息。
虽然这对堆栈的其余部分来说似乎相当不友好。
是的 DEBUG=*
可能过于冗长,但调试模块还允许您指定逗号分隔的通配符模式列表。一些例子:
DEBUG=socket.io*
DEBUG=socket.io*,engine:*
DEBUG=socket.io:socket,engine:socket