代码之家  ›  专栏  ›  技术社区  ›  Mathias Lykkegaard Lorenzen

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

  •  2
  • Mathias Lykkegaard Lorenzen  · 技术社区  · 7 年前

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

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

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

    然后我想要 log 函数以包含文件名 "foo.js" 在原木中。

    这有可能吗?我在任何地方都找不到关于它的任何东西。

    3 回复  |  直到 7 年前
        1
  •  3
  •   Leon Braun    7 年前

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

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

    如果你有更多的问题,请告诉我!

        2
  •  1
  •   Torbinho    7 年前

    作为一种替代方法,您可以抛出错误并在 uncaughtException 事件。请注意,这只能用于开发目的。

        3
  •  0
  •   mukesh.kumar    7 年前

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