从Appcelerator Titanium获取堆栈跟踪或当前文件?

时间:2019-01-03 12:42:44

标签: javascript titanium titanium-mobile appcelerator-titanium

我想建立一个日志机制,其中还包括写入log语句的文件。

例如,如果我有一个文件:

//foo.js
log("stuff");

然后,我希望log函数能够在日志中包含文件名"foo.js"

这可能吗?我在任何地方都找不到任何东西。

3 个答案:

答案 0 :(得分:3)

您可以触发一个新错误并在内部捕获它。这样,您可以使用myError.stack访问堆栈跟踪,这将打印出导致执行点的文件列表。示例:

try {
    throw new Error('Trace!');
} catch (err) {
    console.log(err.trace);
}

如果您还有其他问题,请告诉我!

答案 1 :(得分:1)

或者,您可以抛出错误并在uncaughtException事件中进行处理。请注意,这仅应出于开发目的。

答案 2 :(得分:0)

除了触发新错误外,另一种可能的解决方案是创建并维护自己的全局数组,该数组包含已打开的所有控制器的名称。