2011-07-12 13 views
21

मुझे तीसरे पक्ष के पेज के आउटपुट से बहुत शोर मिल रहा है, मैं वर्तमान में खेल रहा हूं और मुझे आश्चर्य है कि कंसोल पर आउटपुट फ़िल्टर करने का कोई तरीका है या नहीं। Logcat के झंडे की तरह कुछ। क्या ऐसा करने के लिए कोई रास्ता है?क्या Google क्रोम के कंसोल में आउटपुट फ़िल्टर करने का कोई तरीका है?

संपादित

मैं उत्पादन है कि शोर की सबसे बड़ी राशि पैदा कर रहा था निष्क्रिय करने के लिए एक रास्ता मिल गया। मैंने कंसोल पर राइट-क्लिक किए क्लिक किया और फिर XMLHttpRequest Logging विकल्प अक्षम कर दिया। यह वही नहीं है जो मैं चाहता था, लेकिन मुझे यही चाहिए।

+0

फ़िल्टर? साइट की तरह? – Blender

+0

मैं एक एक्सटेंशन विकसित कर रहा हूं जो कंसोल पर आउटपुट करता है, और पृष्ठ कंसोल पर भी आउटपुट करता है ... मैं 'console.log ('एक्सटेंशन', 'संदेश') जैसे कुछ करना चाहता हूं; 'और फ़िल्टर आउटपुट इसलिए मैं केवल पूरे आउटपुट के बजाय 'एक्सटेंशन' के साथ ध्वजांकित सामान देखता हूं। संपादित करें या स्तरों द्वारा फ़िल्टर करें: 'console.warn()', 'console.error()' –

+0

मैं देखता हूं। मुझे नहीं लगता कि कार्यक्षमता क्रोम में मौजूद है ... – Blender

उत्तर

2

यदि आपके पास दोनों पृष्ठ और एक्सटेंशन स्क्रिप्ट का नियंत्रण है तो आप दोनों को अपने स्वयं के फ़ंक्शन के माध्यम से चला सकते हैं। उस फ़ंक्शन में आप अब आउटपुट को नियंत्रित कर सकते हैं।

var pageErrors = true; 
var extErrors = true; 

function outputToConsole(message, sender) { 
    if (sender == 'page' && pageErrors) { console.write(message); } 
    if (sender == 'ext' && extErrors) { console.write(message); } 
} 

हर जगह आप outputToConsole()

+0

दुर्भाग्यवश, मेरे पास पृष्ठ का नियंत्रण नहीं है। –

+1

हमम, मुझे सोचने लगा। एसओ पर इसे देखें। यह लड़का लॉग ऑन चालू और बंद हो जाता है और यहां तक ​​कि एक उदाहरण भी है। http://stackoverflow.com/questions/1215392/how-to-quickly-and-conveniently-disable-all-console-log-statements-in-my-code – mrtsherman

+0

मेरी पहली बक्षीस के लिए धन्यवाद! किसी भी कारण से आपने मेरी पोस्ट को जवाब के रूप में फ़्लैग नहीं किया? – tomdemuyt

18

ऊपर जवाब टिप्पणियों से आगे जा रहे हैं के साथ console.log की जगह प्रवेश करना चाहते हैं ..

जाओ कंसोल मोड (विंडोज पर नियंत्रण शिफ्ट जे) में, दर्ज इस:

console.nativeLog = console.log; 

फिर इस

console.log = function(a, b){ if(a=="extension") console.nativeLog(b) } 
दर्ज

पहली पंक्ति मूल कार्यान्वयन को एक सुरक्षित स्थान पर रखती है। दूसरी पंक्ति आप जो भी अनुरोध करते हैं वह बहुत अधिक करती है। मेरे लिए

काम करता है।

3

मैंने अभी इसके समाधान के बारे में ब्लॉग किया है। मैंने बेन आलमैन की "बीए-डीबग" लाइब्रेरी को संशोधित किया और मॉड्यूलर "ट्रेस" ऑब्जेक्ट बनाया जिसे कोड के विभिन्न मॉड्यूल या क्षेत्रों (आपके द्वारा परिभाषित) के साथ उपयोग करने के लिए डिज़ाइन किया गया था।

बेसिक उपयोग:

var _trace = new Trace('ModuleName'); 

फिर, जब आप बाहर निदान के किसी भी स्तर का पता लगाने के लिए चाहते हैं, आप ऐसा करेंगे:

_trace.error('error level message'); 
    _trace.warn('warning level message'); 
    _trace.info('information level message'); 
    _trace.log('log level message'); 
    _trace.debug('debug level message'); 

फिर, अपने पेज में, या आपके कंसोल में, आप कर सकते हैं ऐसा करते हैं:

Trace.traceLevel('ModuleName', Trace.Levels.warn); 

यहाँ और अधिक विस्तार और जावास्क्रिप्ट फ़ाइल के लिए मेरे ब्लॉग post है:

0

यही वही समस्या है जिसे मैंने अभी भी हल किया है। पिछले उत्तरों की तुलना में, इसे console.log पर कई तर्कों को सही ढंग से संभालने का लाभ है और बिना किसी अपवाद को फेंकने के लिए window.console.log की अनुपस्थिति को रोकने का लाभ है।

(function(){ 
    window.console = window.console||{log:0}; 
    var nativeLog = window.console.log; 
    window.console.log = function() { 
     try { 
      // these conditions find all console.log output 
      // from bitcoinjs-0.1.3 but not much else 
      // (who else ends an extremely short first parameter with a space?) 
      if ((arguments.length == 2) 
       && (arguments[0].length <= 5) 
       && (arguments[0].slice(-2) === ': ') 
      ) { 
       return; 
      }; 
      nativeLog.apply(window.console, arguments); 
     } catch(e) {}; 
    }; 
})(); 
+0

मुझे नहीं पता कि किसी ने आपके जवाब के आधार पर आपको क्यों गिरा दिया था, मैं कंसोल को स्पैम करने वाले वर्बोज़ थर्ड पार्टी लाइब्रेरी के लिए एक अच्छा फ़िल्टर बनाने में सक्षम था। निश्चित रूप से, कोशिश-पकड़ ब्लॉक थोड़ा और स्पष्ट हो सकता है कि यह क्या करता है, लेकिन बाकी का सुनहरा सुनहरा था। –

+0

आप शायद अपवाद हैंडलिंग (कोशिश और पकड़ लाइन) को छोड़ सकते हैं, लेकिन गलती से कोड तोड़ने का खतरा है। यदि आपके द्वारा डाला गया कोई भी कोड, उदाहरण के लिए मिलान करने वाला, कभी भी अपवाद में चलता है कि console.log का कॉलर देखता है, तो आप ऐसा कुछ करते हैं जो कोड को कॉल करने की अपेक्षा नहीं करता था। – pyramids

20

आप नियमित अभिव्यक्तियों का उपयोग कर सकते हैं।

उदाहरण के लिए browser-sync शब्द को बाहर करने के लिए मैं ^((?!browser-sync).)*$ का उपयोग करता हूं।

enter image description here

भी देखें किस तरह से here


क्रोम 44.0.2403.125

+2

चूंकि चेकबॉक्स 'रेगेक्स' को नवीनतम क्रोम से हटा दिया गया है, इसलिए मैंने '/^((?! ब्राउज़र-सिंक)।) * $ /' का उपयोग यह इंगित करने के लिए किया कि यह एक नियमित अभिव्यक्ति है। [इस उत्तर] से लिया गया [https://stackoverflow.com/a/42044616/6053299)। – margaretkru

संबंधित मुद्दे

 संबंधित मुद्दे