2012-05-02 2 views
9

이것은 멍청한 질문입니다.자바 로깅

브라우저 (IE, FF 등)에서 실행중인 Java 스크립트 응용 프로그램에 로깅을 추가하려면 어떻게해야합니까? 내가 이해할 수 있듯이 클라이언트 호스트에 로그 파일을 저장할 수 없습니다. 따라서 두 가지 옵션 만 있습니다. 새 로깅 정보를 새 브라우저 창 (예 : "blackbird")에 표시하거나 서버에 로깅을 보냅니다.

맞습니까? 그들이 일반적으로 사용하는 로깅의 종류는 무엇입니까?

답변

10

클라이언트 호스트에 로그 파일을 "저장할"수 없습니다. 창을 열고 시각화 할 수 있지만 (웹 응용 프로그램을 실행 중이라고 가정 할 때)에는 표시되지 않습니다.

클라이언트 측 로그를 가져와야하는 경우 AJAX를 사용하여 서버로 다시 보내야합니다. Here's a blog post 나는 그것에 대해 정말로 좋아했다.

+0

나는 그가 절대적으로 그들을 얻을 생각합니다 또는 그는 그다지 나쁜 개념이 아니고 포스트의 기술은 완벽합니다 ^^ 현대의 브라우저는 실제로 파일을 쓰는 것을 허용하고 ActiveX 구성 요소는 항상 거기에있었습니다. 클라이언트가 실행을 허용하면 – mschr

0

또 다른 가능성은 jsnlog 라이브러리 http://js.jsnlog.com/ 입니다. 그러면 클라이언트 측 로그를 서버로 보낼 수 있습니다.

0

https://log4sure.com (공개 : 제작했습니다.) -하지만 실제로 유용하고 직접 확인하십시오. 그것은 당신이 오류/이벤트를 기록 할 수 있으며 또한 사용자 정의 로그 테이블을 만들 수 있습니다. 자체 서버에 모든 것을 저장하므로 사용자가하지 않아도됩니다. 또한 로그를 실시간으로 모니터링 할 수 있습니다. 그리고 가장 좋은 부분은 무료입니다.

또한 설치하는 정자를 사용하여, 사용 심정 설치 log4sure

셋업 코드가 너무 정말 간단합니다 :

// setup 
 
var _logServer; 
 

 
(function() { 
 
    var ls = document.createElement('script'); 
 
    ls.type = 'text/javascript'; 
 
    ls.async = true; 
 
    ls.src = 'https://log4sure.com/ScriptsExt/log4sure.min.js'; 
 
    var s = document.getElementsByTagName('script')[0]; 
 
    s.parentNode.insertBefore(ls, s); 
 
    ls.onload = function() { 
 
    // use your token here. 
 
    _logServer = new LogServer("use-your-token-here"); 
 
    }; 
 
})(); 
 

 
// example for logging text 
 
_logServer.logText("your log message goes here.") 
 

 
//example for logging error 
 
divide = function(numerator, divisor) { 
 
    try { 
 
     if (parseFloat(value) && parseFloat(divisor)) { 
 
     throw new TypeError("Invalid input", "myfile.js", 12, { 
 
      value: value, 
 
      divisor: divisor 
 
     }); 
 
     } else { 
 
     if (divisor == 0) { 
 
      throw new RangeError("Divide by 0", "myfile.js", 15, { 
 
      value: value, 
 
      divisor: divisor 
 
      }); 
 
     } 
 
     } 
 
    } catch (e) { 
 
     _logServer.logError(e.name, e.message, e.stack); 
 

 
    } 
 
    } 
 
    // another use of logError in window.onerror 
 
    // must be careful with window.onerror as you might be overwriting some one else's window.onerror functionality 
 
    // also someone else can overwrite window.onerror. 
 
window.onerror = function(msg, url, line, column, err) { 
 
    // may want to check if url belongs to your javascript file 
 
    var data = { 
 
    url: url, 
 
    line: line, 
 
    column: column, 
 

 
    } 
 
    _logServer.logError(err.name, err.message, err.stack, data); 
 

 
}; 
 

 
// example for custom logs 
 
var foo = "some variable value"; 
 
var bar = "another variable value"; 
 
var flag = "false"; 
 
var temp = "yet another variable value"; 
 

 
_logServer.log(foo, bar, flag, temp);