2011-11-28 21 views
9

Tôi đang làm việc trên ứng dụng JavaScript trên nền tảng không có hỗ trợ cho đầu ra nhật ký, không cho phép mở cửa sổ mới cho đầu ra logger và không có gì giống như Firebug hoặc trình gỡ lỗi Safari trên đó ...JavaScript AJAX logger từ xa

Cho đến nay tôi đã sử dụng floating <div> trên z-index 2 và tôi đã đăng nhập văn bản bên trong, nhưng điều này là không đủ. Tôi đang tìm kiếm một số trọng lượng nhẹ logger Javascript JSONP và một số PHP hay Tomcat máy chủ đối ...

Cảm ơn Sten

Trả lời

13

Gần đây tôi stumbled khi trình bày này của N. Zakas, và thực hiện kỹ thuật này đã giải thích ở đó. Nó là khá đơn giản nhưng rất hiệu quả IMHO

http://www.slideshare.net/nzakas/enterprise-javascript-error-handling-presentation

ý tưởng là chỉ cần ban hành một cuộc gọi đến một thành phần phía máy chủ (tôi đã sử dụng một handler .net nhưng nó có thể là một tập tin php cũng) mà mất một param, đăng nhập các giá trị param và trả về luồng hình ảnh 1x1 trở lại. Điều tôi thích nhất là không cần phải liên quan đến các cuộc gọi ajax.

Các mã từ phần trình bày như sau:

function log(severity, message) { 
     var img = new Image(); 
     img.src = "log.php?sev=" + encodeURIComponent(severity) + 
     "&msg=" + encodeURIComponent(message); 
    } 

    log(1, "something bad happened"); 
+0

Wow! Trông khá thông minh, bạn có thực hiện một số phía máy chủ cho nó? Một số servlet php/tomcat với kịch bản giao diện người dùng hiển thị nó? Nó sẽ là tốt đẹp để có phía máy chủ là tốt ... – STeN

+0

Không có mã php không may, nhưng nó nên được khá đơn giản: chỉ cần lấy các params và gọi xử lý đăng nhập. – mamoo

+1

Tôi tin rằng nó phải là img.src ** = ** "log.php", chứ không phải img.src ** + ** log.php. –

3

Một thay thế cho lưu trữ máy chủ khai thác gỗ của riêng bạn có thể JSConsole.com. Đó là một trình gỡ lỗi từ xa chung cho JavaScript. Chỉ cần đăng ký một người nghe, dán thẻ script mà nó tạo ra vào trang của bạn, sau đó kích hoạt một cá thể trên bất kỳ thiết bị nào. Trình gỡ lỗi là hai chiều, do đó, không chỉ việc ghi nhật ký được chuyển tiếp tới giao diện điều khiển từ xa trên JSConsole, bạn có toàn quyền truy cập vào môi trường JS trên máy khách từ xa.