【发布时间】:2013-12-06 15:43:54
【问题描述】:
我有一个轻量级的日志记录功能。为了简单起见,它类似于:
function log(msg){
console && console.log && console.log(msg);
}
which i have in a seperated file "Logging.js".
现在可以从另一个文件中说“hello.js”:
log("Hello");
现在,如果我调用该函数,控制台将始终显示 Logging.js:2 作为记录发生的位置。所以没有机会确定消息的来源。日志消息应该是hello.js:1。
是否可以从哪里找到日志函数被调用,找出调用的行号,然后操作控制台显示的行号?
或者有更简单的解决方案吗?
注意,请仔细阅读:它与当前行号无关。它是关于发生函数调用的行号以及关于如何操作日志输出以便显示从哪里调用函数的行号。这与错误或捕获错误无关。
我已经在一段时间前发布了这个问题,并且很快就被否决并宣布为How can I determine the current line number in JavaScript? 的副本,但事实并非如此。这个问题不是关于查找当前行号。
【问题讨论】:
-
不会发生...
-
您可以从某些浏览器可以生成的堆栈跟踪中获取大量信息。只需抛出一个异常,然后捕获它,然后检查它的堆栈跟踪。
标签: javascript logging reflection