node.js - Node-RED 中的自定义文件日志记录

标签 node.js node-red

根据 Node-Red official documentation ,我在settings.js文件中启用了自定义日志记录,如下

// Custom logger
    myCustomLogger: {
        level: 'debug',
        metrics: true,
        handler: function(settings) {
            return function(msg) {
                console.log(msg.timestamp, msg.event);
            }
        }

该脚本运行良好,并在控制台中打印调试语句和指标。我想了解更多有关如何应用创建文件以监视 Node 红色的日志函数的信息?

最佳答案

我知道这个线程有点旧,但是因为有人询问如何将 log4js 与 NodeRed 一起使用,我刚刚完成了它。这是它的代码。 将其添加到日志记录部分的 settings.js 中:

myCustomLogger: {
  level: "info",
  handler: function(settings) {
    var log4js = require("log4js");
    log4js.configure({
      appenders: {
        everything: { type: 'dateFile', filename: '/Users/Media/Library/Logs/node-red.log', daysToKeep: 7 }
      },
      categories: {
        default: { appenders: [ 'everything' ], level: 'all' }
      }
    });
    var logger = log4js.getLogger();

    return function(msg) {
      var level='ALL'
      switch(msg.level) {
        case 10:
          var level="FATAL";
          break;
        case 20:
          var level="ERROR";
          break;
        case 30:
          var level="WARN";
          break;
        case 40:
          var level="INFO";
          break;
        case 50:
          var level="DEBUG";
          break;
        case 60:
          var level="TRACE";
          break;
      }
      var add_msg=""
      if (msg.type !== undefined) {
        if (msg.name !== undefined) {
          add_msg="[".concat(msg.type, ":", msg.name, "] ");
        } else {
          add_msg = "[".concat(msg.type, "] ");
        }
      } else if (msg.name !== undefined) {
        add_msg = "[".concat(msg.name, "] ");
      }
      logger.log(level, add_msg.concat(msg.msg));
    }
  }
}

关于node.js - Node-RED 中的自定义文件日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48542231/

相关文章:

node.js - 如何在 TypeScript 中正确设计 API 模块?

node.js - node dist/server.js 退出时没有错误消息

javascript - 语句前缺少 ";"

javascript - 使用 "file-in"和 "xml"节点时如何检测文件结尾?

node.js - 尝试运行 socket.io 示例时出现跨源请求被阻止错误

node.js - 从 NodeJS 向 Skype for Business 发送附件

mysql - 遍历 Nodejs MySQL 结果集中的字段

raspberry-pi - 如何在 Node-RED 中将 python 库作为外部脚本调用

javascript - 在node-red中使用msg.payload运行javascript函数

node-RED json 对象 - 如何提取 json 值