我正在使用 NodeJS 网络框架 Expressjs 和一个中间件将请求记录到一个文件 (morgan)。
我的 session :
// 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 morgan 只记录路由请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26943213/