2011-11-28 3 views
9

로그 출력을 지원하지 않는 플랫폼에서 JavaScript 애플리케이션을 작성 중이며 로거 출력용 새 창을 열 수 없으며 Firebug 또는 Safari 디버거와 같은 기능이 없습니다.JavaScript AJAX 원격 로거

지금까지 floating <div>z-index 2에 사용하고 있는데 그 안에 텍스트를 기록했지만 충분하지 않습니다. 내가

감사합니다 ... 일부 경량 자바 스크립트 JSONP 로거 및 일부 PHP 또는 Tomcat 서버 대응을 찾고 스텐은

답변

13

최근 N. Zakas의 프리젠 테이션 우연히, 그리고 기술이 설명 구현했습니다. 그것은 아주 간단하지만 이럴 매우 효과적이다

http://www.slideshare.net/nzakas/enterprise-javascript-error-handling-presentation

아이디어는 단순히 서버 측 구성 요소에 대한 호출을 (내가 그물 핸들러를 사용하지만, 그것뿐만 아니라 PHP 파일 수) 일부를 걸립니다하는데 있습니다 param을 기록하고 param 값을 기록한 다음 1x1 이미지 스트림을 반환합니다. 가장 좋아하는 것은 아약스 호출을 전혀 포함 할 필요가 없다는 것입니다.

function log(severity, message) { 
     var img = new Image(); 
     img.src = "log.php?sev=" + encodeURIComponent(severity) + 
     "&msg=" + encodeURIComponent(message); 
    } 

    log(1, "something bad happened"); 
+0

와우! 상당히 영리 해 보입니다. 서버 측 구현이 있습니까? UI 스크립트를 표시하는 일부 PHP/Tomcat 서블릿? 서버 쪽을 가지고있는 것이 좋을 것입니다 ... – STeN

+0

불행하게도 php 코드는 없지만 매우 간단해야합니다 : params를 잡고 로그 처리기를 호출하십시오. – mamoo

+1

나는 그것이 img.src ** = ** "log.php"가 아니라 img.src ** + ** log.php가되어야한다고 생각한다. –

3

자신의 서버 로그를 호스팅하는 또 다른 방법은 JSConsole.com이 될 수 있습니다 다음과 같이

프리젠 테이션에서 코드입니다. 자바 스크립트 용 범용 원격 디버거입니다. 리스너를 등록하고 생성 한 스크립트 태그를 페이지에 붙여 넣은 다음 모든 장치에서 인스턴스를 시작하면됩니다. 디버거는 양방향이므로 로깅이 JSConsole의 원격 콘솔로 전달 될뿐만 아니라 원격 클라이언트의 JS 환경에 대한 전체 액세스 권한을 갖습니다.