查找与RoR中类似的处理堆栈跟踪的node.js包:
发布于 2012-03-04 10:13:10
您可以从任何错误的.stack
属性中获取此文本。例如:
try {
throw new Error();
} catch (e) {
console.log(e.stack);
}
或者只是出于获取堆栈跟踪的目的而new
一个错误。
console.log(new Error().stack)
发布于 2012-03-16 22:07:56
有一个函数可以实现这个功能:console.trace()
如果您不想记录到控制台,可以使用new Error().stack
获取堆栈跟踪字符串值
发布于 2014-05-26 04:55:32
如果您使用winston,则可以添加以下内容:
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中。
https://stackoverflow.com/questions/9551634
复制相似问题