我想将响应正文记录在我的日志文件中
我已经尝试过 morgan-body 但我想将响应记录在文件中而不是控制台中
以下代码将记录请求正文,那么有没有办法也记录响应?
morgan.token('body', function (req, res) { return JSON.stringify(req.body) });
app.use(morgan(':method :url :status :response-time ms - :res[content-length] :body - :req[content-length]', {
stream: logger.successLogStream,
skip: function (req, res) { return res.statusCode >= 400 }
}));
app.use(morgan(':method :url :status :response-time ms - :res[content-length] :body - :req[content-length]', {
stream: logger.errorLogStream,
skip: function (req, res) { return res.statusCode < 400 }
}));
例如我想记录以下错误消息
return res.status(400).send({ "message": "Campaign id is not defined" })
你可以用这个
const app = express()
const originalSend = app.response.send
app.response.send = function sendOverWrite(body) {
originalSend.call(this, body)
this.__custombody__ = body
}
morgan.token('res-body', (_req, res) =>
JSON.stringify(res.__custombody__),
)
...
app.use(express.json())
app.use(express.urlencoded({ extended: true }))
app.use(morgan(loggerFormat, { stream: logStream }))
app.use(...routers)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)