2012-04-18 14 views
6

एक स्कूल प्रोजेक्ट में मैं कुछ जावास्क्रिप्ट चला रहा हूं जो कंसोल विंडो के माध्यम से इनपुट किए जाते हैं और वहां से चलते हैं। यह स्क्रिप्ट वेब पेज का उपयोग करती है और परिणामों को कंसोल पर आउटपुट करती है।क्रोम में एक लगातार तरीके से स्टोर कंसोल लॉगिंग

समस्या: इन परिणामों को लगातार तरीके से रखें/सहेजें, जो ब्राउज़र बंद नहीं होते हैं, स्क्रिप्ट खराब होने/पेज रीलोड, या यदि संभव हो तो पीसी क्रैश।

मैंने लॉग 4js या jStorage (jQuery संग्रहण) जैसे ढांचे का उपयोग करने के बारे में सोचा, लेकिन चूंकि यह मेरी वेबसाइट नहीं है, मैं मैनिपुलेट कर रहा हूं, मैं पृष्ठ पर कोड या मार्कअप नहीं जोड़ सकता।

क्या ऐसा करने का कोई तरीका है?

नोट: यह महत्वपूर्ण नहीं है कि मैं परिणामों को कंसोल पर लॉग करता हूं, मैं उन्हें कहीं से भेज सकता हूं या उनके साथ कुछ और कर सकता हूं अगर यह लॉग करना अधिक आसान हो जाता है।

धन्यवाद।

+0

Chrome की कंसोल लॉग पेज रीलोड्स पर जारी रह सकता है, यह एक अंतर्निहित विकल्प है। – katspaugh

+0

धन्यवाद। अगर मैं डिस्क-लॉगिंग फ़ंक्शन –

+0

पर काम नहीं कर सकता तो उपयोगी हो सकता है कि ओपी ने कभी जवाब नहीं स्वीकार किया है – Mawg

उत्तर

1

उपयोग console.error(arg); - यह सांत्वना संदेश ब्राउज़र की stderr में भेज देंगे (मैं बहुत यह इतना में रिलीज बनाता है, भी करना होगा यकीन है।)

कमांड लाइन से आपके ब्राउज़र प्रारंभ करें और अपनी stderr अनुप्रेषित कुछ फ़ाइल में (chrome 2>errlog की रेखाओं के साथ कुछ)।

+0

आपका मतलब है कि तर्क --args 2> errlog होना चाहिए, जिसका अर्थ है कि स्तर 2 (त्रुटियों) के लॉग फ़ाइल में लॉग हैं errlog? कोई भी विचार जहां यह फ़ाइल सहेजी जाएगी? मैक पर आईएम –

+0

'2> इरलॉग' का अर्थ है" स्ट्राइडर को रीडायरेक्ट करें (जिसमें 2 का संभाल है) जिसे 'errlog' कहा जाता है। आप किसी भी फ़ाइल का नाम (पूर्ण पथ सहित) प्रदान कर सकते हैं। –

+1

मैंने एक पूर्ण पथ निर्दिष्ट किया है, और क्रोम को पुनरारंभ करने के बाद फ़ाइल बनाई गई थी, जो एक अच्छा संकेत है। फिर भी, मैंने कुछ कंसोल निष्पादित करने के बाद। आतंक (तर्क) जो मुझे लाल पाठ में तर्क वापस दिखाता है, यह टेक्स्ट फ़ाइल में नहीं जोड़ा गया है। टेक्स्ट फ़ाइल में एकमात्र पंक्ति निम्न है: [0418/164110: INFO: breakpad_mac.mm (148)] ब्रेकपैड अक्षम यह मेरी ऐप्पलस्क्रिप्ट-स्क्रिप्ट है जो तर्क के साथ क्रोम खोलने के लिए है: शैल स्क्रिप्ट करें "/ अनुप्रयोग/Google \\ Chrome.app/Contents/MacOS/Google \\ क्रोम - सक्षम-लॉगिंग --v = 1 2>/उपयोगकर्ता/* myusername */दस्तावेज़/त्रुटि।txt " –

8

आप स्वचालित रूप से इन विकल्पों के साथ क्रोम चलाने के लिए सब कुछ आप क्रोम कंसोल में सहेजना चाहते हैं:

--enable-logging --v=1 

यह अपनी डाटा निर्देशिका के अंदर क्रोम से भरा लॉग बचा सकते हैं (ध्यान दें कि फ़ाइल हो जाएगा प्रत्येक रन पर ओवरराइट)। अधिक जानकारी here

वैकल्पिक तरीका: क्रोम लॉग प्रबंधित करने के लिए Sawbuck उपयोगिता स्थापित करें।

+0

धन्यवाद, मैं इसे देख लूंगा! –

+0

मुझे लॉग फ़ाइल नहीं मिल रही है। कोई विचार जहां यह स्थित है? मैक पर आईएम, मैंने क्रोम.एप की पैकेज सामग्री की जांच की। –

+0

यह ~/लाइब्रेरी/एप्लिकेशन सपोर्ट/Google/क्रोम/डिफॉल्ट, वैसे भी जांचें http://www.chromium.org/for-testers/enable-logging –

7

यहाँ एक छोटे से समारोह है कि WebStorage में लॉग संग्रहीत करता है (ब्राउज़र सत्रों में बनी रहती है):

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

लॉग पुनर्स्थापित करने के लिए, आप निम्न अभिव्यक्ति को चलाने के लिए होगा:

(function restoreLogs() { 
    var timestamps = Object.keys(localStorage).sort(); 
    timestamps.forEach(function (ts) { 
     var logArgs = JSON.parse(localStorage.getItem(ts)); 
     console.log.apply(console, logArgs); 
    }); 
}()); 
संबंधित मुद्दे