2012-12-07 8 views
10

Chciałbym wiedzieć, czy istnieje sposób w javascript do pobierania historii konsoli.Pobierz historię konsoli

Co mam na myśli przez historię konsoli, pojawia się na konsoli narzędzi programistycznych. Na przykład, chciałbym wydrukować na stronie html wszystkie błędy, ostrzeżenia, informacje i log, które są wyświetlane w moich narzędziach programistycznych bez ich otwierania.

Daj mi znać, jeśli nie jestem jasny.

+0

http://www.whathaveyoutried.com/? Czy powinno to działać na stronie internetowej lub jako wtyczka przeglądarki? Jaka jest Twoja docelowa przeglądarka? Dodaj te informacje do swojego pytania/tagów. – rekire

+0

Podaj szczegółowe wyjaśnienie, co próbujesz zrobić. Tylko wtedy możemy Ci pomóc. –

Odpowiedz

1

Rozszerzenia Chrome miał API za to experimental.devtools.console:

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

Ten interfejs API została usunięta.

+9

Link jest martwy i 'chrome.experimental => undefined' – Sigfried

+0

" eksperymentalny "to operatywne słowo – vothaison

1

Nie można uzyskać danych konsoli za pomocą JavaScript. Jedynym sposobem, w jaki można to zrobić, jest przejęcie wszystkich funkcji konsoli i zapisanie kopii, a następnie wywołanie domyślnych linii dziennika.

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); 
    } 
} 

a następnie użyć console.history dostęp do historii

+0

Nie działa w Chrome 63 – Bright

7

napisałem prostą bibliotekę różnych przeglądarkach na to, zwane console.history. Jest ona dostępna na GitHub: https://git.io/console

Co biblioteka w zasadzie robi to nadrobić wszystkie połączenia do console.[log/warn/error/debug/info] i przechowywać je w tablicy console.history. Jako bonus dodawany jest również pełny ślad stosu.

plik testowy test.js zawiera:

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(); 

Wpis do console.history będą:

{ 
    "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

To powinna być zaakceptowana odpowiedź. – Darkrum