如何将日志保存到文件中

时间:2020-03-03 12:34:49

标签: node.js node-modules

我正在为节点应用程序使用表达框架,并使用REST API进行交互。

需要保存和维护API请求和响应的日志,包括其他一些字段,例如成功响应,错误响应和API端点。

在logger.log文件或数据库中保存日志的最佳方法是什么?

有人可以帮我举个例子吗,我真的很感谢您的帮助吗?

谢谢!

3 个答案:

答案 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上有许多可用的记录器工具,您最好的选择是使用其中一种,例如:

  1. 摩根
  2. 笨人
  3. 温斯顿
  4. 节点日志

对于您的问题,这是您的答案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)