2012-04-18 35 views
6

Trong một dự án trường học, tôi đang chạy một số javascript được nhập thông qua cửa sổ bảng điều khiển và chạy từ đó. Kịch bản này điều khiển trang web và xuất kết quả ra bàn điều khiển.Lưu trữ bảng điều khiển lưu trữ trong Chrome theo cách liên tục

VẤN ĐỀ: Lưu/lưu các kết quả này theo cách liên tục không biến mất khi đóng trình duyệt, kịch bản hỏng hóc/tải lại trang hoặc nếu có thể, sự cố máy tính.

Tôi đã nghĩ đến việc sử dụng các khung như Log4js hoặc jStorage (jQuery Storage), nhưng vì đây không phải là trang web của tôi, tôi không thể thêm mã hoặc đánh dấu vào trang.

Có cách nào để thực hiện việc này không?

GHI CHÚ: Điều không quan trọng là tôi đăng nhập kết quả vào bàn điều khiển, tôi có thể gửi chúng đi đâu đó hoặc làm điều gì đó khác với chúng nếu điều đó giúp bạn dễ dàng đăng nhập hơn.

Cảm ơn.

+0

Chrome Nhật ký giao diện điều khiển có thể tồn tại trong quá trình tải lại trang, đây là tùy chọn được tích hợp sẵn. – katspaugh

+0

Cảm ơn. Có thể hữu ích nếu tôi không thể thực hiện chức năng ghi đĩa –

+0

Một điều đáng tiếc là OP không bao giờ chấp nhận câu trả lời – Mawg

Trả lời

1

Sử dụng console.error(arg); - nó sẽ gửi tin nhắn giao diện điều khiển vào trình duyệt của stderr (Tôi khá chắc chắn nó sẽ làm như vậy trong bản phát hành xây dựng, quá.)

Bắt đầu trình duyệt của bạn từ dòng lệnh và chuyển hướng stderr của bạn vào một số tập tin (một cái gì đó dọc theo dòng chrome 2>errlog).

+0

Bạn có nghĩa là đối số sau --args phải là 2> errlog, nghĩa là nhật ký cấp 2 (lỗi) được ghi vào tệp errlog? Bất kỳ ý tưởng nào nơi tệp này sẽ được lưu? Im trên một mac. –

+0

'2> errlog' có nghĩa là" chuyển hướng stderr (trong đó có một xử lý 2) vào một tập tin gọi là 'errlog' ". Bạn có thể cung cấp bất kỳ tên tệp nào (bao gồm đường dẫn đầy đủ.) –

+1

Tôi đã chỉ định đường dẫn đầy đủ và sau khi khởi động lại Chrome tệp đã được tạo, đây là một dấu hiệu tốt. Tuy nhiên, sau khi tôi đã thực hiện một số console.error (args) trong đó cho thấy các đối số lại cho tôi trong văn bản màu đỏ, nó không được thêm vào tập tin văn bản. Dòng duy nhất trong tệp văn bản như sau: [0418/164110: INFO: breakpad_mac.mm (148)] Bàn phím tắt bị vô hiệu hóa Đây là tập lệnh AppleScript của tôi để mở Chrome bằng các đối số: làm kịch bản lệnh shell "/ Ứng dụng/Google \\ Chrome.app/Contents/MacOS/Google \\ Chrome - có thể ghi nhật ký - v = 1 2>/Người dùng/* tên người dùng */Documents/errlog.txt " –

8

Nếu bạn muốn tự động lưu tất cả mọi thứ trong Chrome điều khiển bạn phải chạy Chrome với các tùy chọn này:

--enable-logging --v=1 

Nó sẽ tiết kiệm được đầy đủ các bản ghi của chrome bên trong thư mục dữ liệu (lưu ý rằng tập tin sẽ được ghi đè trên mỗi lần chạy). Thêm chi tiết here.

Cách thay thế: cài đặt tiện ích Sawbuck để quản lý nhật ký Chrome.

+0

Cảm ơn, tôi sẽ kiểm tra điều đó! –

+0

Tôi không thể tìm thấy tệp nhật ký. Bất kỳ ý tưởng nào nằm ở đâu? Im trên máy Mac, tôi đã kiểm tra nội dung gói của Chrome.app. –

+0

Nó phải ở trên ~/Library/Application Support/Google/Chrome/Mặc định, hãy kiểm tra http://www.chromium.org/for-testers/enable-logging –

7

Dưới đây là một chức năng nhỏ mà lưu trữ các bản ghi vào WebStorage (kéo dài xuyên suốt các phiên trình duyệt):

console.plog = function() { 
    var key = Date.now(); 
    var value = JSON.stringify([].slice.call(arguments)); 
    localStorage.setItem(key, value); 
    console.log.apply(console, arguments); 
} 

Để khôi phục lại các bản ghi, bạn phải chạy các biểu thức sau đây:

(function restoreLogs() { 
    var timestamps = Object.keys(localStorage).sort(); 
    timestamps.forEach(function (ts) { 
     var logArgs = JSON.parse(localStorage.getItem(ts)); 
     console.log.apply(console, logArgs); 
    }); 
}()); 
Các vấn đề liên quan