2012-12-07 4 views
10

Ich würde gerne wissen, ob es einen Weg in Javascript gibt, um den Konsolenverlauf abzurufen.Erhalten Sie die Konsolenhistorie

Was ich mit der Konsolenhistorie meine, ist, was in der Dev-Tools-Konsole angezeigt wird. Zum Beispiel möchte ich in einer HTML-Seite alle Fehler, Warnungen, Informationen und Protokolle drucken, die in meinen Entwicklungswerkzeugen angezeigt werden, ohne sie zu öffnen.

Lassen Sie mich wissen, wenn ich nicht klar bin.

+0

http://www.whathaveyoutried.com/? Soll das auf einer Website oder als Browser-Plugin laufen? Was ist dein Zielbrowser? Bitte fügen Sie diese Informationen zu Ihrer Frage/Tags hinzu. – rekire

+0

Geben Sie eine detaillierte Erklärung, was Sie zu tun versuchen. Nur dann können wir Ihnen helfen. –

Antwort

1

Chrome-Erweiterungen hatte eine API für das, experimental.devtools.console:

chrome.experimental.devtools.console.getMessages(function(messages) { }) 

Diese API wurde entfernt.

+9

Link ist tot und 'chrome.experimental => undefined' – Sigfried

+0

" experimental "ist das operative Wort – vothaison

1

Es gibt keine Möglichkeit, die Konsolendaten mit JavaScript zu erhalten. Die einzige Möglichkeit, dies zu tun, besteht darin, alle Konsolenfunktionen zu kapern und eine Kopie zu speichern und dann die Standardprotokollzeilen aufzurufen.

1
console.history = []; 
var oldConsole = {}; 
for (var i in console) { 
    if (typeof console[i] == 'function') { 
     oldConsole[i] = console[i]; 
     var strr = '(function(){\ 
      console.history.push({func:\'' + i + '\',args : Array.prototype.slice.call(arguments)});\ 
      oldConsole[\'' + i + '\'].apply(console, arguments);\ 
     })'; 
     console[i] = eval(strr); 
    } 
} 

Und dann console.history verwenden Geschichte zugreifen

+0

Funktioniert nicht auf Chrome 63 – Bright

7

ich eine einfache Cross-Browser-Bibliothek für diese, die so genannte console.history schrieb. Es ist auf GitHub verfügbar: https://git.io/console

Was im Grunde die Bibliothek tut, ist alle Anrufe console.[log/warn/error/debug/info] fangen und speichern sie in der console.history Array. Als Bonus wird auch eine vollständige Stapelverfolgung hinzugefügt.

Testdatei test.js enthält:

function outer() { 
    inner(); 
} 

function inner() { 
    var array = [1,2,3]; 
    var object = {"foo": "bar", "key": "value"}; 
    console.warn("Something went wrong, but we're okay!", array, object); 
} 

outer(); 

Der Eintrag zu console.history wird:

{ 
    "type": "warn", 
    "timestamp": "Thu, 01 Sep 2016 15:38:28 GMT", 
    "arguments": { 
    "0": "Something went wrong, but we're okay!", 
    "1": [1, 2, 3], 
    "2": { 
     "foo": "bar", 
     "key": "value" 
    } 
    }, 
    "stack": { 
    "0": "at inner (http://localhost:1337/test/test.js:6:11)", 
    "1": "at outer (http://localhost:1337/test/test.js:2:3)", 
    "2": "at http://localhost:1337/test/test.js:9:1" 
    } 
} 
+1

Dies sollte die akzeptierte Antwort sein. – Darkrum