Internet Explorer에서 콘솔 로깅을 사용하려면 어떻게해야합니까?


119

IE 용 콘솔 로거가 있습니까? 콘솔에 여러 테스트 / 어설 션을 기록하려고하는데 IE에서는이 작업을 수행 할 수 없습니다.


8
조심해! console.log()IE의 개발 도구가 열려있을 때만 작동합니다 (예 IE는 엉터리입니다). 참조 stackoverflow.com/questions/7742781/...을
아드는 수

1
: 랩퍼 교차 브라우저를 사용 github.com/MichaelZelensky/log.js
마이클 Zelensky

답변:


147

"개발자 도구"(F12)를 실행하여 IE8 스크립트 콘솔에 액세스 할 수 있습니다. "스크립트"탭을 클릭 한 다음 오른쪽의 "콘솔"을 클릭하십시오.

JavaScript 코드 내에서 다음 중 하나를 수행 할 수 있습니다.

<script type="text/javascript">
    console.log('some msg');
    console.info('information');
    console.warn('some warning');
    console.error('some error');
    console.assert(false, 'YOU FAIL');
</script>

또한을 호출하여 콘솔을 지울 수 있습니다 console.clear().

참고 : 이 작업을 수행하려면 먼저 개발자 도구를 시작한 다음 페이지를 새로 고쳐야합니다.


이것은 IE8 +만을위한 것이지만, 훌륭한 콘솔입니다. 기본적으로 Firebug의 복제품으로, 일부 다른 기능과 함께 몇 가지 기능이 누락되었습니다. MSDN에서 검색하십시오.
ken

2
아, Firebug에 미치지 못하더라도 내가 필요한만큼 충분합니다. 감사!
ground5hark 2010


73
IE에서는 Firefox와 달리 개발자 도구가 활성화되어 있지 않으면 window.console이 정의되지 않고 호출 console.log()이 중단됩니다. 항상 통화를 보호하십시오window.console && console.log('stuff');
Guss

1
여전히 찾을 수없는 경우에는 내가 한 작업을 수행하지 말고 창의 상단 부분에 스크립트를 입력 해보십시오. 입력 영역은 실제로 개발자 도구 콘솔 창 하단의 텍스트 영역 / 바입니다. .
starmandeluxe 2013

24

버전 8부터 Internet Explorer에는 다른 브라우저와 마찬가지로 자체 콘솔이 있습니다. 그러나 콘솔이 활성화 console되지 않은 경우 개체가 존재하지 않으며를 호출 console.log하면 오류가 발생합니다.

또 다른 옵션은 IE> = 5를 포함한 모든 주류 브라우저에서 작동하는 자체 로깅 콘솔과 undefined 문제를 방지하는 브라우저 자체 콘솔 용 래퍼가있는 log4javascript (전체 공개 : 필자가 작성)를 사용하는 것 console입니다.


하 .. 몇 달 동안 비슷한 것을 썼습니다. 잘하셨습니다!
tftd

@Tim Down 그것에 대한 해결 방법이 있습니다. stackoverflow.com/a/13817235/3057246
Vinod Srivastav

14

프로덕션에서 console.log ()를 사용하는 경우 매우 중요합니다.

console.log()프로덕션에 명령을 릴리스하는 console경우에는 F12디버깅 모드 에서만 정의 되기 때문에 IE에 대한 일종의 수정 사항을 적용해야 합니다.

if (typeof console == "undefined") {
    this.console = { log: function (msg) { alert(msg); } };
}

[분명히 alert (msg)를 제거하십시오); 일단 당신이 그것이 작동하는지 확인하면 진술]

참조 '콘솔'Internet Explorer 용 정의되지 않은 오류가 다른 솔루션 및 자세한 내용은



5

다른 브라우저의 줄 번호를 유지하는 간단한 IE7 이하 shim :

/* console shim*/
(function () {
    var f = function () {};
    if (!window.console) {
        window.console = {
            log:f, info:f, warn:f, debug:f, error:f
        };
    }
}());

3

그의 저서 "Secrets of Javascript Ninja"에서 John Resig (jQuery의 창시자)는 브라우저 간 console.log 문제를 처리 할 매우 간단한 코드를 가지고 있습니다. 그는 모든 브라우저에서 작동하는 로그 메시지를 원한다고 설명하며 다음과 같이 코딩했습니다.

function log() {
  try {
    console.log.apply(console, arguments);
  } catch(e) {
  try {
    opera.postError.apply(opera, arguments);
  }
  catch(e) {
    alert(Array.prototype.join.call( arguments, " "));
  }
}

John Resig입니다. 당신은 "Resign", LOL
rvighne

1
}그 스 니펫에 누락 이 있습니다 . :)
Nighto

2

IE8 또는 console.log로 제한된 콘솔 지원 (디버그, 추적 없음, ...)의 경우 다음을 수행 할 수 있습니다.

  • console OR console.log가 정의되지 않은 경우 : 콘솔 기능 (추적, 디버그, 로그, ...)에 대한 더미 기능 생성

    window.console = { debug : function() {}, ...};

  • 그렇지 않으면 console.log가 정의되고 (IE8) console.debug (기타)가 정의되지 않은 경우 : 모든 로깅 기능을 console.log로 리디렉션하면 해당 로그를 유지할 수 있습니다!

    window.console = { debug : window.console.log, ...};

다양한 IE 버전의 assert 지원에 대해서는 확실하지 않지만 어떤 제안이라도 환영합니다.



0

IE 8 이전 버전의 경우 IE 개발자 도구 모음에서 콘솔 로그를 보는 것은 쉽지 않습니다. 시간을 들여 조사하고 다양한 솔루션을 시도한 후 마지막으로 다음 도구 모음은 저에게 훌륭한 도구입니다.

이것의 주요 장점은 IE6 또는 IE7 용 콘솔을 제공하므로 오류가 무엇인지 확인할 수 있습니다 (콘솔 로그에서).

  • 노트 :
  • 공짜 야
  • 툴바의 스크린 샷

여기에 이미지 설명 입력


0

나는 항상 다음과 같은 일을 해왔습니다.

var log = (function () {
  try {
    return console.log;
  }
  catch (e) {
    return function () {};
  }
}());

그리고 그 시점부터는 항상 log (...)를 사용하고 콘솔을 사용하는 것에 너무 화려하지 마십시오. [warn | error | 등], 그냥 간단하게 유지하십시오. 나는 일반적으로 간단한 솔루션을 선호하고 멋진 외부 라이브러리를 선호합니다.

IE의 문제를 피하는 간단한 방법 (기존이 아닌 console.log 사용)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.