IT story

서버에서 클라이언트 측 JavaScript 오류 로깅 [닫힘]

hot-time 2020. 9. 1. 08:03
반응형

서버에서 클라이언트 측 JavaScript 오류 로깅 [닫힘]


수동 테스트만으로 JavaScript 오류를 찾는 데 문제가있는 ASP.NET 사이트를 운영하고 있습니다.

클라이언트 측에서 모든 JavaScript 오류를 포착하고 서버 (예 : 웹 서비스 또는 이와 유사한 것을 통해)에 기록 할 가능성이 있습니까?


onerror 이벤트에 대한 자체 핸들러를 설정하고 XMLHttpRequest를 사용하여 서버에 무엇이 잘못되었는지 알릴 수 있지만, 사양의 일부가 아니기 때문에 지원이 다소 불안정 합니다.

다음은 XMLHttpRequest를 사용하여 JavaScript 오류를 기록 하는 예제입니다 .

window.onerror = function(msg, url, line)
{
  var req = new XMLHttpRequest();
  var params = "msg=" + encodeURIComponent(msg) + '&url=' + encodeURIComponent(url) + "&line=" + line;
  req.open("POST", "/scripts/logerror.php");
  req.send(params);
};

짧은 대답 : 예, 가능합니다.

더 긴 답변 : 사람들은 자신의 코드를 작성하여이 문제를 (적어도 부분적으로) 해결할 수있는 방법에 대해 이미 작성했습니다. 그러나 필요한 JS 코드가 많은 브라우저에서 작동하는지 확인한 것으로 보이는 서비스가 있다는 점에 유의하십시오. 다음을 찾았습니다.

아직 시도하지 않았기 때문에 이러한 서비스에 대해 말할 수 없습니다.


방금 직장에서 프로젝트의 자바 스크립트 오류에 대한 서버 측 오류 로깅을 구현했습니다. jQuery를 사용하는 레거시 코드와 새 코드가 혼합되어 있습니다.

나는 조합 사용 window.onerror(다음을 참조 에러 처리 기능과 jQuery를 이벤트 핸들러와 onready 기능을 포장을 자바 스크립트 오류 추적 : window.onerror가 충분하지 않습니다 이유 ).

  • window.onerror: IE의 모든 오류 (및 Firefox의 대부분의 오류)를 포착하지만 Safari 및 Opera에서는 아무 작업도 수행하지 않습니다.
  • jQuery 이벤트 핸들러 : 모든 브라우저에서 jQuery 이벤트 오류를 ​​포착합니다.
  • jQuery 준비 기능 : 모든 브라우저에서 초기화 오류를 포착합니다.

오류를 발견하면 URL, 브라우저 등의 추가 속성을 추가 한 다음 ajax 호출을 사용하여 서버에 다시 게시합니다.

서버에는 게시 된 인수를 가져 와서 정상적인 서버 로깅 프레임 워크로 출력하는 작은 페이지가 있습니다.

이 코드를 jQuery 플러그인으로 공개하고 싶습니다. 관심이있는 사람이 있으면 알려주세요. 상사를 설득하는 데 도움이 될 것입니다!


Google Analytics를 사용하는 경우 Google Analytics 이벤트에 자바 스크립트 오류를 ​​기록 할 수 있습니다.

이 앱보기 : http://siteapps.com/app/log_javascript_errors_with_ga-181

도움이되기를 바랍니다.


또한 TraceTool 유틸리티를 사용하는 것이 좋습니다. JavaScript 지원이 제공되며 JS 모니터링에 매우 편리합니다.


클라이언트 측 오류를 서버에 다시 기록하려면 일종의 서버 처리를 수행해야합니다. 가장 좋은 방법은 JavaScript (AJAX)를 통해 액세스 할 수있는 웹 서비스를 갖고 여기에 오류 로그 정보를 전달하는 것입니다.

문제가있는 웹 서비스를 호스팅하는 웹 서버에 문제가있는 경우 문제가 100 % 해결되지 않습니다. 다른 옵션은 쿼리 문자열을 통해 표준 페이지를 통해 정보를 보내는 것입니다. 브라우저가 이미지의 소스를로드하려고 시도하기 때문에 동적으로 생성 된 이미지 태그 (그런 다음 제거됨)를 통해 수행됩니다. 그래도 도메인 간 JavaScript 호출을 잘 처리합니다. 누군가 이미지가 꺼져 있으면 문제가 있음을 명심하십시오.)


최근에 asp.net 및 JavaScript 오류를 모두 캡처 하는 Appfail을 사용 하고 있습니다.


try / catch에서 서버에 대한 Ajax 호출을 할 수 있지만 이것이 최선의 방법 일 것입니다.

대신 JavaScript 단위 테스트를 제안해도됩니까? 아마도 JSUnit으로 ?

참고 URL : https://stackoverflow.com/questions/119432/logging-clientside-javascript-errors-on-server

반응형