javascript-使用行号捕获控制台
捕获控制台时如何捕获日志的行号? (仅限Chrome-其他浏览器与我无关) 我有以下内容来捕获所有日志javascript-使用行号捕获控制台,javascript,console.log,nw.js,nwjs,Javascript,Console.log,Nw.js,Nwjs,捕获控制台时如何捕获日志的行号? (仅限Chrome-其他浏览器与我无关) 我有以下内容来捕获所有日志 consoleLogs: [], init: function(){ app.captureConsole(); }, captureConsole: function(){ var _log = console.log; console.log = function() { app.consoleLogs.push(JSON.stringify(
consoleLogs: [],
init: function(){
app.captureConsole();
},
captureConsole: function(){
var _log = console.log;
console.log = function() {
app.consoleLogs.push(JSON.stringify({method: 'log', args: arguments}));
return _log.apply(console, arguments); // <-- line number 123 [e.g.]
};
},
控制台日志:[],
init:function(){
app.captureConsole();
},
captureConsole:函数(){
var_log=console.log;
console.log=函数(){
push(JSON.stringify({method:'log',args:arguments}));
return _log.apply(console,arguments);//您可以尝试解析new Error().stack
的值。它是一个字符串,是创建Error
对象的作用域的堆栈跟踪
输出依赖于浏览器,因为它是非标准功能。因为您只需要在nw.js上使用它,所以它可能是您的一个选项
在node.js(我怀疑是chrome)上,输出是一个以换行符分隔的字符串,其中每一行的格式如下:
at functionName (/absolute/file/path:lineNumber:charNumber)
因此,在您的情况下,您想要的信息可能是:
new Error().stack.split('\n')[1];
行号是什么意思?调用console.log的代码行号
?或consoleLogs
数组中的日志索引?在调用代码控制台日志的行号时。