我想建立一个日志机制,其中还包括写入log语句的文件。
例如,如果我有一个文件:
//foo.js
log("stuff");
然后,我希望log
函数能够在日志中包含文件名"foo.js"
。
这可能吗?我在任何地方都找不到任何东西。
答案 0 :(得分:3)
您可以触发一个新错误并在内部捕获它。这样,您可以使用myError.stack
访问堆栈跟踪,这将打印出导致执行点的文件列表。示例:
try {
throw new Error('Trace!');
} catch (err) {
console.log(err.trace);
}
如果您还有其他问题,请告诉我!
答案 1 :(得分:1)
或者,您可以抛出错误并在uncaughtException
事件中进行处理。请注意,这仅应出于开发目的。
答案 2 :(得分:0)
除了触发新错误外,另一种可能的解决方案是创建并维护自己的全局数组,该数组包含已打开的所有控制器的名称。