function log( msgOrObj ){
if(dev_mode){
console.log({
'message': msgOrObj,
'caller': arguments.callee.caller.toString()
});
}
}
因此,我尝试编写一个简单的自定义控制台日志函数(如上所述)。但是,我正在努力寻找调用者来自哪个文件和行。我能看到的最多的是调用它的函数。
有人做过类似的事情吗?或者这甚至可能吗?
第 70 行的 somescript.js 中使用的示例:
log('some very important message!')
最佳答案
是的,但它非常 hacky 并且不是跨浏览器安全的。您可以以此为起点。它borrows from this answer .
window.trace = function stackTrace() {
var err = new Error();
return err.stack;
}
window.my_log = function (x) {
var line = trace();
var lines = line.split("\n");
console.log(x + " " + lines[2].substring(lines[2].indexOf("("), lines[2].lastIndexOf(")") + 1))
}
window.my_log("What light through yonder window breaks?")
产生:
What light through yonder window breaks? (<anonymous>:2:42)
关于javascript - 自定义控制台日志功能,一个 console.log 包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20524700/