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

Getting the stack trace or current file from Appcelerator Titanium?

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

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

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

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

这可能吗?我在任何地方都找不到任何相关信息。

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

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

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

作为替代方案,您可以抛出错误并在 uncaughtException 事件中处理它。请注意,这应该只用于开发目的。

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