Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新定义window.console函数时保留原始路径位置_Javascript_Console_Instrumentation - Fatal编程技术网

Javascript 重新定义window.console函数时保留原始路径位置

Javascript 重新定义window.console函数时保留原始路径位置,javascript,console,instrumentation,Javascript,Console,Instrumentation,我想记录所有控制台消息,因此我重新定义了控制台函数,包括log/warn/info/error,如下例所示 var originalError = console.error; console.error = function () { //Do something for logging originalError.apply(console, arguments); }; 但是,我丢失了实际调用console.error()的原始位置:path:line,因为它

我想记录所有控制台消息,因此我重新定义了控制台函数,包括log/warn/info/error,如下例所示

var originalError = console.error;    
console.error = function () {
     //Do something for logging
     originalError.apply(console, arguments);
};

但是,我丢失了实际调用console.error()的原始位置:
path:line
,因为它现在指向上面代码中的
apply()
函数。我怎样才能得到这些信息?

你不能那样做。但是,您可以通过在自定义函数中获取错误的
.stack
属性,并将其预处理/附加到错误或单独记录来模拟它

(新错误)。堆栈
给出如下内容:

"Error
    at <anonymous>:2:5
    at Object.InjectedScript._evaluateOn (<anonymous>:875:140)
    at Object.InjectedScript._evaluateAndWrap (<anonymous>:808:34)
    at Object.InjectedScript.evaluate (<anonymous>:664:21)"
“错误

谢谢。但问题是只有可丢弃的错误才有堆栈跟踪。我的目的是重新定义控制台日志/info/warn/error函数来做一些额外的工作,而且它们肯定没有堆栈跟踪。使用stacktrace.js从
参数获取堆栈跟踪。被调用方
使用stacktrace.js:这是stacktrace.js中遍历
参数的一小部分ts.callee
chain:-您不需要全部内容:)