2011-02-17 4 views
9

우리는 서버 측 서비스를위한 로깅 시스템을 구축했습니다. 특히 Django 프로젝트는 Python 로깅 모듈을 많이 사용하기 때문에 logger.info(), logger.warn()logger.error()에 대한 호출 호출은 중앙 집중식 로깅 시스템에 의해 선택됩니다.Google 백엔드에 로그인하는 JavaScript 프론트 엔드 로그인 시스템?

나는 우리의 프론트 엔드에 상응하는 싶습니다, 나는 몇 가지 아이디어를 가지고 :

  1. XMLHttpRequest를 통해 백엔드 메시지를 보낼 것입니다 자바 스크립트를 통해 노출 된 사용자 정의 로그 객체의 일종이 될 것이다 .

  2. 내가 클라이언트 측에 해당 로깅 수준이 싶습니다 debug, info, warningerror을.

  3. 로컬 (디버그 모드)을 개발할 때 해당 로깅 메시지가 브라우저/Firebug 콘솔에 console.log()을 통해 기록되도록하고 싶습니다.

  4. 생산시에는 debug 메시지를 완전히 삭제해야합니다.

  5. 캐치되지 않은 모든 JavaScript 예외를 캡처하는 방법을 알고 있으므로 레벨이 error이어야합니다.

  6. 우리는 이미 Google Analytics event tracking을 사용하고 있으며, 우리가 어떤 식 으로든 시스템을 만들면 좋을 것입니다.

이것은 좋은 생각입니까? 어떻게 할거 니? 기존 솔루션이 있습니까? 여기 단순화 된 질문 :

업데이트를

(., 우리가 프론트 엔드에 jQuery를 사용하고 FWIW는) https://stackoverflow.com/questions/1423267/are-there-any-logging-frameworks-for-javascript

+0

이 질문에 대한 좋은 제목을 결정할 수 없습니다. 부담없이 개선하십시오. –

+3

클라이언트가 서버 측 로그를 "채울"수 있다면 인터넷에있는 모든 사람 (웹 응용 프로그램이라고 가정)이 AJAX 스팸을 통해 서버 측 로그를 범람시킬 수 있다는 의미입니까? 시스템 로그에 "물건"을 기록 할 수있는 사람에 대한 보안 제한을 추가 할 수 있습니다 ... – DashK

+0

좋은 질문입니다! +1 – peteorpeter

답변

13

먼저 나는 log4javascript을 작성하고 유지하므로 관심을 표명하고 있습니다. 나는 또한 매일 그것을 일하는 데 사용하기 때문에 나는 그걸 사용자로서 경험하고있다.여기에 내가 특별히 log4javascript에 관한 당신의 질문을 처리 할 방법은 다음과 같습니다

  1. 사용 log4javascript의 AjaxAppender 서버 로깅을위한;

  2. debug, info, warningerror 모든 tracefatal뿐만 아니라, 지원됩니다

  3. BrowserConsoleAppender을 사용하여 FireBug 또는 기본 브라우저 콘솔에 로그인하십시오. 당신 프로덕션 코드에서 모든 디버그 로깅 호출을 제거하지 않으려면

  4. , 당신은 (우선 순위 ERROR보다 작은 모든 로그 호출을 억제 할, 예를 들어, log.setLevel(log4javascript.Level.ERROR) 사용) 로거의 임계 값을 조정할 수 있습니다. 모든 로깅 호출을 억제하려면 프로덕션 코드의 stub version of log4javascript에 넣을 수 있습니다.

  5. window.onerror을 사용하여 코드를 작성해야합니다. 예 : window.onerror = function(msg, file, line) { log.error("Error in " + file + " on line " + line + ": " + msg); }

  6. Google 웹 로그 분석으로 어떻게 연결하고 싶은지 잘 모르겠습니다. log4javascript에는 특별한 지원이 없습니다.

+0

입니다. 실제로 msg, 파일 및 라인은 일반적으로 로그를 기반으로 디버깅하기에 충분하지 않습니다. 당신이 정말로 보내야 할 것은 스택입니다. 현재는 다섯 번째 매개 변수이지만 모든 브라우저에서 지원되지 않으므로 새 오류를 만들고 메시지, 파일 등을 재정의해야합니다.브라우저가 스택을 지원하면 스택을 보냅니다. – inf3rno

+0

참고 : 새로운 오류가 스택을 포함하지 않는 것 같습니다 : https://github.com/stacktracejs/stacktrace.js/issues/26 그래서 두려워 할 것 같습니다. 오래된 브라우저에서 해결 방법은 없지만 아직 테스트하지는 않았습니다. – inf3rno

1

아이디어는 여기 좋은 소리. 클라이언트 측을 로깅하여보고자하는 것이 정확히 무엇인지 알고 있어야합니다.

로깅에 log4javascript을 사용하는 것이 좋습니다. log4 API는 꽤 똑바로 전진합니다.

1

여기서부터 another question 여기에서이 문제에 관해서입니다.

일부 권장 사항은 log4js, log4javascriptBlackbird입니다.

FWIW, log4js가 허용 된 답변입니다. 나는이 플랫폼들에 대한 경험이 없기 때문에 다른 플랫폼들보다 하나의 플랫폼을 추천 할 수는 없다.

+0

유용하지만, 5 번과 6 번 질문에 대해서는 무엇이 있습니까? –

+0

@a 머저리 퍼드 - 저는 유료입니다. 자바 나 자바 스크립트로는 실제로 작동하지 않기 때문에이 문제에 익숙하지 않다. (최근에 우리가 작업하고있는) 중앙 집중식 로깅 솔루션과 JavaScript 로깅을 통합하는 방법을 살펴 보도록 요청 받았을 때 최근에 그들과 만나기 시작했습니다. JavaScript로 아무것도하지 못했습니다. – wageoghe

+0

'log4js'이 (가) 이동했습니다. 현재 프로젝트 URL은 http://stritti.github.io/log4js/ – ylerjen

관련 문제