【问题标题】:Nodejs - print function name, line number and file nameNodejs - 打印函数名、行号和文件名
【发布时间】:2017-10-08 11:52:46
【问题描述】:

我正在研究 Nodejs 中的各种包,但找不到适合我需要的包。 我想输出当前行号、函数名和src文件来记录,类似于Bunyan logger的做法。

我查看了诸如“caller-id”之类的包,但我无法使用它,因为它不支持“严格”模式。

其他包,如“capture-stack-trace”只返回文件名,没有行号和函数名。

是否有我缺少的包可以满足我的需要? 或者有没有一种优雅的方式在代码中生成这些信息?

提前致谢。

【问题讨论】:

  • 我看到了,但它是一个日志包。我使用 Bunyan 作为我的记录器,我只是想停止使用它的 'src' 选项。

标签: node.js logging stack-trace


【解决方案1】:

在每个节点记录器中,默认情况下始终关闭确定调用源信息。它很慢。切勿在生产中使用此选项。

我们将bunyan 用于我们的微服务。这是来自documentation的复制粘贴:

可以添加日志调用站点的源文件、行和函数 使用 src: true 配置选项记录记录:

var log = bunyan.createLogger({src: true, ...});

这会在 'src' 字段中添加调用源信息,如下所示:

{
  "name": "src-example",
  "hostname": "banana.local",
  "pid": 123,
  "component": "wuzzle",
  "level": 4,
  "msg": "This wuzzle is woosey.",
  "time": "2012-02-06T04:19:35.605Z",
  "src": {
    "file": "/Users/trentm/tm/node-bunyan/examples/src.js",
    "line": 20,
    "func": "Wuzzle.woos"
  },
  "v": 0
}

【讨论】:

  • 我已经使用 Bunyan 作为记录器和 'src' 选项。但我想关闭它并使用我自己的“src”对象。
猜你喜欢
  • 2012-02-11
  • 2011-09-16
  • 1970-01-01
  • 1970-01-01
  • 2014-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多