我使用NodeJS Web框架Expressjs和一个中间件将请求记录到文件(morgan)。

我的conf:

// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(__dirname + '/logs/access.log', {flags: 'a'})

// setup the logger
app.use(logger('short', {stream: accessLogStream}))

我的日志如下所示:
192.168.1.3 - GET /signup HTTP/1.1 304 - - 19.194 ms
192.168.1.3 - GET /assets/css/admin/module.admin.stylesheet-complete.sidebar_type.collapse.no_min2.css HTTP/1.1 304 - - 15.500 ms
192.168.1.3 - GET /assets/components/library/jquery/jquery.min.js?v=v1.0.3-rc2&amb;sv=v0.0.1.1 HTTP/1.1 304 - - 14.244 ms

有什么方法可以只记录路由请求吗?例如,如果用户输入/signup/:
192.168.1.3 - GET /signup HTTP/1.1 304 - - 19.194 ms

而不是路线所需的 Assets 。

提前致谢。

最佳答案

我遇到了同样的问题,我找到了简单的解决方案,也许会对某些人有所帮助。如果您使用express.static,则可以将此调用移至morgan调用上方,
例如:

app.use(express.static(__dirname + '/public'));
...
app.use(logger('short'));

静态 Assets 将不会被记录。注意:您的 Assets 文件必须存在,否则它们仍将被记录(在Express 4.12中进行了测试)。

关于css - ExpressJS摩根日志仅路由请求,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26943213/

10-12 16:24
查看更多