我正在为节点应用程序使用表达框架,并使用REST API进行交互。
需要保存和维护API请求和响应的日志,包括其他一些字段,例如成功响应,错误响应和API端点。
在logger.log文件或数据库中保存日志的最佳方法是什么?
有人可以帮我举个例子吗,我真的很感谢您的帮助吗?
谢谢!
答案 0 :(得分:0)
您可以使用快速中间件来记录每个请求,如下所示:
https://expressjs.com/en/guide/using-middleware.html
app.use(function (req, res, next) {
console.log('Time:', Date.now())
//make string with req and res and save to file
next()
})
编辑:
app.use(function (err, req, res, next) {
//log before callback
next();
//log after
});
答案 1 :(得分:0)
考虑到NodeJS上有许多可用的记录器工具,您最好的选择是使用其中一种,例如:
对于您的问题,这是您的答案https://softwareengineering.stackexchange.com/questions/92186/why-is-filesystem-preferred-for-logs-instead-of-rdbms
此链接包含设置morgan的基本代码。 https://expressjs.com/en/resources/middleware/morgan.html。下面的代码将在您运行时创建一个.log文件。
var express = require("express");
var fs = require("fs");
var morgan = require("morgan");
var path = require("path");
var app = express();
// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(path.join(__dirname, "access.log"), {
flags: "a"
});
// setup the logger
app.use(morgan("combined", { stream: accessLogStream }));
app.get("/", function(req, res) {
res.send("hello, world!");
});
app.listen(2000);
答案 2 :(得分:0)
您可以使用Winston libary 这是更多示例: https://www.digitalocean.com/community/tutorials/how-to-use-winston-to-log-node-js-applications