如何获得调用当前函数的函数的名称和行?我希望有一个像这样的基本调试函数(使用npmlog定义log.debug):
function debug() {
var callee, line;
/* MAGIC */
log.debug(callee + ":" + line, arguments)
}
Run Code Online (Sandbox Code Playgroud)
当从另一个函数调用时,它将是这样的:
function hello() {
debug("world!")
}
// outputs something like:
// "hello:2 'world!'"
Run Code Online (Sandbox Code Playgroud)
为清楚起见,我想要的基本上类似于Python:
import inspect
def caller():
return inspect.stack()[2][3]
// line no from getframeinfo().lineno
Run Code Online (Sandbox Code Playgroud)
是否有一个节点等效于完成此操作?
我在chrome中使用angularjs $ log,但它显示的行如:angular.js:9037,我想显示我调用此方法的行号.(显示我的js名称和正确的行),有谁知道它?或角度没有此功能.
我正在努力增强某些node.js应用程序的日志记录.过去曾使用C++的__ file__和__ line __预处理器宏来帮助我们在记录事件时追踪问题.我在node.js世界中找不到类似的东西.
有没有人有建议或知道如何在node.js中获取行号和文件名以进行日志记录?
我正在寻找类似的东西:
console.log(__FILE__ + "." + __LINE__ + "\t" + new Date().toISOString() + " Message ");
Run Code Online (Sandbox Code Playgroud) 我想在Google Chrome开发人员工具的"脚本"标签中自定义显示在strack trace面板中的项目.具体来说,我想过滤掉堆栈跟踪中的项目,并为堆栈跟踪中的某些项目添加更多描述性名称,而无需重命名我的对象和函数.
我在http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi找到了V8的Stack Trace API,但是覆盖Error.prepareStackTrace似乎没有任何效果.