2012-05-02 30 views
9

Đây là câu hỏi noob.Đăng nhập Javascript

Điều gì sẽ xảy ra nếu tôi muốn thêm nhật ký vào ứng dụng tập lệnh java đang chạy trong trình duyệt (IE, FF, v.v ...)? Theo tôi hiểu tôi không thể lưu các tệp nhật ký trong máy khách. Vì vậy, tôi chỉ có hai lựa chọn: hiển thị thông tin đăng nhập của tôi trong một cửa sổ trình duyệt mới (như "blackbird") hoặc gửi đăng nhập vào máy chủ.

Có đúng không? Họ thường sử dụng loại ghi chép nào?

Trả lời

10

Bạn không thể "lưu trữ" tệp nhật ký trên máy chủ của khách hàng. Bạn có thể mở một cửa sổ và trực quan hóa nó, nhưng bạn (giả sử bạn đang chạy Ứng dụng Web) sẽ không bao giờ nhìn thấy nó.

Nếu bạn hoàn toàn phải nhận nhật ký phía máy khách, bạn cần gửi chúng trở lại máy chủ bằng AJAX. Here's a blog post Tôi thực sự thích về nó.

+0

tôi nghĩ anh ấy hoàn toàn phải có được họ hay ông sẽ không hỏi =) Nó không phải là một khái niệm xấu tbh và kỹ thuật trong bài viết đó là hoàn hảo ^^ Các trình duyệt hiện đại thực sự cho phép ghi các tập tin và các thành phần ActiveX có allways đã có; nếu khách hàng chấp nhận chạy nó – mschr

0

Một khả năng khác là thư viện jsnlog http://js.jsnlog.com/ Nó sẽ cho phép bạn gửi nhật ký phía máy khách đến máy chủ.

0

Hãy xem https://log4sure.com (tiết lộ: Tôi đã tạo) - nhưng nó thực sự hữu ích, hãy kiểm tra và tự quyết định. Nó cho phép bạn đăng nhập lỗi/sự kiện và cũng cho phép bạn tạo bảng nhật ký tùy chỉnh của mình. Nó lưu trữ tất cả mọi thứ trên máy chủ của riêng nó, do đó bạn không cần phải. Nó cũng cho phép bạn theo dõi nhật ký của mình theo thời gian thực. Và phần tốt nhất, miễn phí của nó.

Bạn cũng có thể sử dụng Chòi chơi để cài đặt nó, sử dụng Chòi chơi cho cài đặt log4sure

Các thiết lập đang thực sự quá dễ dàng:

// 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);