javascript-使用行号捕获控制台

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(

捕获控制台时如何捕获日志的行号? (仅限Chrome-其他浏览器与我无关)

我有以下内容来捕获所有日志

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
数组中的日志索引?在调用代码控制台日志的行号时。