서버에서 클라이언트 측 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 코드가 많은 브라우저에서 작동하는지 확인한 것으로 보이는 서비스가 있다는 점에 유의하십시오. 다음을 찾았습니다.
- http://trackjs.com
- https://www.atatus.com
- http://jserrlog.appspot.com
- http://muscula.com
- https://sentry.io
- https://rollbar.com
- https://catchjs.com
아직 시도하지 않았기 때문에 이러한 서비스에 대해 말할 수 없습니다.
방금 직장에서 프로젝트의 자바 스크립트 오류에 대한 서버 측 오류 로깅을 구현했습니다. 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
'IT story' 카테고리의 다른 글
여러 헤 로쿠 계정 (0) | 2020.09.02 |
---|---|
Typescript에서 NPM 모듈 작성 (0) | 2020.09.02 |
Dockerfile의 다중 RUN vs. 단일 체인 RUN, 무엇이 더 낫습니까? (0) | 2020.09.01 |
Visual Studio C ++에 대한 단위 테스트를 설정하는 방법 (0) | 2020.09.01 |
GitHub : 이전 버전의 파일 검색 (0) | 2020.09.01 |