2014-06-05 6 views
8

console.log를 순수한 JavaScript로 문자열로 가져 오려고합니다. 입력 내용이 익숙하지 않은 스크립트이며 console.log의 모든 메시지를 문자열로 수집하려고합니다. 예를 들어JavaScript에서 console.log 내용을 문자열로 가져 오는 방법

: 나는 로그를 경고 할 필요가 없습니다

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

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

alert(doSomething()); 

JSFiddle link

주 -이 기능을 테스트의 단순한 예입니다. 로그 내용에 대해 몇 가지 작업을 수행해야합니다.

답변

13

당신은 그것을 사용하기 전에 console.log 방법을 덮어 쓸 수 있습니다 : applyarguments를 사용

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

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

는 하나의 호출로 여러 로그 메시지를 추가 할 수 있습니다, 즉 올바른 console.log 동작을 유지합니다.

모든 새 console.log 메시지를 logMessages 배열로 푸시합니다.

+0

이렇게하면 "InternalError : too many recursion"오류가 발생합니다. –

관련 문제