首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在node.js中记录堆栈跟踪

如何在node.js中记录堆栈跟踪
EN

Stack Overflow用户
提问于 2012-03-04 09:55:11
回答 4查看 21.4K关注 0票数 23

查找与RoR中类似的处理堆栈跟踪的node.js包:

Rails: Logging the entire stack trace of an exception

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-04 10:13:10

您可以从任何错误的.stack属性中获取此文本。例如:

代码语言:javascript
复制
try {
    throw new Error();
} catch (e) {
    console.log(e.stack);
}

或者只是出于获取堆栈跟踪的目的而new一个错误。

代码语言:javascript
复制
console.log(new Error().stack)
票数 39
EN

Stack Overflow用户

发布于 2012-03-16 22:07:56

有一个函数可以实现这个功能:console.trace()

如果您不想记录到控制台,可以使用new Error().stack获取堆栈跟踪字符串值

票数 9
EN

Stack Overflow用户

发布于 2014-05-26 04:55:32

如果您使用winston,则可以添加以下内容:

代码语言:javascript
复制
winston = require('winston');

logger = expandErrors(new winston.Logger());

logger.info(new Error("my error"));

// Extend a winston by making it expand errors when passed in as the 
// second argument (the first argument is the log level).
function expandErrors(logger) {
  var oldLogFunc = logger.log;
  logger.log = function() {
    var args = Array.prototype.slice.call(arguments, 0);
    if (args.length >= 2 && args[1] instanceof Error) {
      args[1] = args[1].stack;
    }
    return oldLogFunc.apply(this, args);
  };
  return logger;
}

然后你会得到带有堆栈跟踪的winston记录器。也是在a gist中。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9551634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档