我正在使用 ExpressWinston 登录 Node.js 应用程序。我们可以记录每个正在调用的静态资源的请求吗?
如果找到文件 (200),记录器不会记录,但会在未找到文件 (404) 时记录。 例如,如果请求有效,如 http://domain/css/existingfile.css ,记录器不记录。 但是,如果请求无效,如 http://domain/css/non-existingfile.css ,记录器使用正确的 404 状态代码进行记录。
当文件也被发现时我需要日志(200)。如何配置expressWinston以记录所有具有服务器返回的任何状态代码的请求?
问候
最佳答案
我下面的配置使用 ExpressWinston 和 winston-mongodb 将所有请求记录在 mongodb 数据库中,无论状态代码如何。您可以根据需要将传输更改为控制台或文件。您将根据您的白名单获取每个请求和响应的相关元数据。
expressWinston.responseWhitelist.push('body')
const requestLog = expressWinston.logger({
transports: [
new winston.transports.MongoDB({
db: db,
options: {
useNewUrlParser: true,
poolSize: 2,
autoReconnect: true
}
})
],
meta: true,
msg: (req, res) => 'HTTP {{req.method}} {{req.url}};',
requestWhitelist: [
'url',
'method',
'httpVersion',
'originalUrl',
'query',
'body'
]
});
只需将 Transports 数组中的代码替换为
transports: [
new winston.transports.Console()
]
如果你想在控制台中显示。
关于node.js - ExpressWinston 未登录 200 HTTP 响应代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55711648/