2014-06-05 15 views
8

Próbuję pobrać plik console.log jako ciąg w czystym JavaScript. Moje dane wejściowe to skrypt, którego nie znam i chcę zebrać wszystkie wiadomości w pliku console.log w ciągu znaków.Jak zdobyć zawartość console.log jako łańcuch znaków w JavaScript

Na przykład:

function doSomething(){ 
    console.log("start"); 
    console.log("end"); 
    var consoleLog = getConsoleLog(); 
    return consoleLog; 
} 

function getConsoleLog(){ 
    // How to implement this? 
} 

alert(doSomething()); 

JSFiddle link

pamiętać, że nie trzeba ostrzegać dziennik - to tylko prosty przykład testowanie funkcjonalności. Będę musiał wykonać pewne operacje na zawartości dziennika.

Odpowiedz

13

Można nadpisać console.log metodę przed użyciem go:

var logBackup = console.log; 
var logMessages = []; 

console.log = function() { 
    logMessages.push.apply(logMessages, arguments); 
    logBackup.apply(console, arguments); 
}; 

Korzystanie apply i arguments zachowuje prawidłową console.log zachowanie, to znaczy można dodać wiele wiadomości dziennika za pomocą jednego połączenia.

Przesyła wszystkie nowe wiadomości console.log do tablicy logMessages.

+0

Powoduje to błąd "InternalError: too recursion" dla mnie. –

Powiązane problemy