【问题标题】:How to save logs in a file [closed]如何将日志保存在文件中[关闭]
【发布时间】:2020-03-03 21:01:10
【问题描述】:

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

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

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

谁能帮我举个例子,我真的很感激一些帮助?

提前致谢!

【问题讨论】:

    标签: node.js node-modules


    【解决方案1】:

    考虑到 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】:

    【讨论】:

      【解决方案3】:

      您可以使用 express 中间件来记录每个请求,如下所示:

      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
      });
      

      【讨论】:

      • 我想保存从调用 API 到失败的每个操作,包括 API 的名称,并将此信息保存在令牌名称(“exampleToken”)中。我已经阅读了文档,但我希望有一个更清晰的例子。
      • function (err, req, res, next) - 你可以获得每个请求的所有参数和错误。如果你想在回调后记录,你可以在 next() 函数之后保存
      • 是的,我需要这样的东西,但我不仅需要记录,我还需要保存这些日志......你能帮忙吗/
      猜你喜欢
      • 1970-01-01
      • 2022-11-03
      • 2018-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多