【发布时间】:2018-06-25 05:55:06
【问题描述】:
Morgan's documentation 描述了可以拆分请求和响应的日志记录:
拆分/双重记录
morgan中间件可以根据需要多次使用,实现如下组合:
- 在请求时记录条目,在响应时记录条目
- 将所有请求记录到文件,但将错误记录到控制台
在他们唯一相关的例子中,有一些 cmets 描述了一个中间件将错误响应记录到控制台,另一个请求记录到文件:
// log only 4xx and 5xx responses to console app.use(morgan('dev', { skip: function (req, res) { return res.statusCode < 400 } })) // log all requests to access.log app.use(morgan('common', { stream: fs.createWriteStream(path.join(__dirname, 'access.log'), {flags: 'a'}) }))
这似乎实现了将所有请求记录到文件并将错误记录到控制台的第二个示例,但不是第一个。
我有点迷茫,我不明白是什么告诉morgan 只记录请求或只记录响应。我是否必须关心将这些中间件正确放置在哪里?
目前,我猜我对请求和响应都有一个日志条目:
morgan('[:date[clf]] :remote-addr :url :method HTTP/:http-version :status :remote-user :res[content-length] :referrer :user-agent :response-time ms', {
stream: {
write: (message) => {
winston.silly(message.trim());
}
}
});
那么,我怎样才能在morgan 中间件调用中正确记录请求,而在另一个调用中响应?
【问题讨论】:
标签: javascript node.js express logging morgan