반응형
javascript console.log 캡처?
중복 가능성 :
Chrome에서 console.log 호출 가로 채기
자바 스크립트에서 콘솔 객체 (로깅 재 라우팅)를 확장 할 수 있습니까?
내 JS 앱이 console.log에 쓸 때 서버에 출력을 기록하는 AJAX를 수행 할 수 있도록 해당 로그 메시지를 캡처하고 싶습니다. 어떻게하나요?
로그에 기록하는 코드는 외부 서비스에서 가져온 것이므로 직접 ajax 할 수 없습니다.
다음과 같은 방식으로 JavaScript 함수를 하이재킹 할 수 있습니다.
(function(){
var oldLog = console.log;
console.log = function (message) {
// DO MESSAGE HERE.
oldLog.apply(console, arguments);
};
})();
- 라인 1 은 함수를 클로저로 감싸므로 다른 함수가 직접 액세스 할 수 없습니다
oldLog
(유지 관리상의 이유로). - 라인 2 는 원래 방법을 캡처합니다.
- 3 행 은 새 함수를 만듭니다.
- 4 행 은
message
서버로 보내는 곳 입니다. - 5 행 은 원래 처리 된 것처럼 원래 메소드를 호출합니다.
apply
원래 인수 를 console
사용하여 호출 할 수 있도록 사용됩니다 . 와의 연관성에 의존 oldLog(message)
하기 때문에 단순히 호출 이 실패 합니다.log
console
아래의 zzzzBov의 주석 업데이트 는 IE9에서 console.log
실제로 기능이 아니므로 oldLog.apply
실패합니다. 자세한 내용 은 IE9에서 작동하지 않는 console.log.apply 를 참조하십시오.
단순한:
function yourCustomLog(msg) {
//send msg via AJAX
}
window.console.log = yourCustomLog;
당신은 전체 오버라이드 (override) 할 수 있습니다 console
캡처에 개체 console.info
, console.warn
등을 :
window.console = {
log : function(msg) {...},
info : function(msg) {...},
warn : function(msg) {...},
//...
}
참고 URL : https://stackoverflow.com/questions/11403107/capturing-javascript-console-log
반응형
'code' 카테고리의 다른 글
.apk를 처음 설치할 때 서비스를 시작하는 방법 (0) | 2020.11.11 |
---|---|
@Transactional을 SpringData와 함께 사용하는 방법? (0) | 2020.11.11 |
Swift-코너 반경 및 그림자 문제 (0) | 2020.11.10 |
ASP.NET MVC-QueryString 값 가져 오기 (0) | 2020.11.10 |
JavaScript에서 변수가 날짜인지 확인하는 방법이 있습니까? (0) | 2020.11.10 |