Node.js कंसोल .log बनाम कंसोल.info


96

console.logबनाम का उपयोग करने का क्या लाभ है console.info? या किसी अन्य सांत्वना की बात उस बात के लिए है?

console.info("info");
console.error("error");
console.warn("warn");

बनाम

console.log("log");

मुझे लगा कि यह आउटपुट का रंग बदल सकता है या किसी प्रकार के लेबल को बदल सकता है, लेकिन वे सभी एक ही काम करते हैं। और यहाँ प्रलेखन के अनुसार:

https://nodejs.org/api/console.html#console_console_info_data

उन्हें लगता है कि सभी ऐसा ही करेंगे console.log


की संभावित डुप्लिकेट: stackoverflow.com/questions/14437428/…
क्रेग वेन

3
कुछ सुझाव: आप रंगों का बेहतर उपयोग कर सकते हैं: कंसोल.लॉग ('% c नमूना पाठ', 'रंग: हरा?'); या पाठ में कुछ VAR का उपयोग करके जोड़ें: कंसोल.लॉग (`नमूना $ {चर}`, 'रंग: हरा;');
गिल्बर्टो बी। टेरा जूनियर

धन्यवाद, मुझे नहीं पता था कि यह नोड js पर भी काम करता है

जवाबों:


83

उस दस्तावेज़ के अनुसार जिसे आपने लिंक किया था, console.errorऔर जिसके लिए console.warnआउटपुट करता है stderr। दूसरों को उत्पादन करने के लिए stdout

यदि आप node.jsअंतर से पाइपिंग या पुनर्निर्देशन कर रहे हैं तो यह महत्वपूर्ण है।

ब्राउज़र में चलाने के लिए बहुत सारे जावास्क्रिप्ट लिखे गए हैं और Node.js। नोड को लागू करने से पूर्ण कंसोल अधिक से अधिक कोड क्रॉस-अनुकूलता के लिए अनुमति देता है।

अधिकांश ब्राउज़रों में, न केवल ये लॉग अलग-अलग रंगों में होते हैं, बल्कि आप विशिष्ट संदेशों को देखने के लिए फ़िल्टर भी कर सकते हैं।

console.info("info");
console.error("error");
console.warn("warn");
console.log("log");

धन्यवाद! यह ब्राउज़र था जहां यह अलग तरह से दिखाई देता है। मैं रंग परिवर्तन के लिए टर्मिनल में देख रहा था।
सीनटॉम्बर्क 16

2
में node( 8.11.4) और क्रोम 67, वहाँ भी है console.debug(और काफी संभावना पुराने संस्करण)। debugनीचे रैंक log
मार्कस जूनियस ब्रूटस

40

console.log() से छोटा है console.info()

वे एक ही बात कर रहे हैं, और यह एकमात्र फायदा है।

यहां छवि विवरण दर्ज करें


67
मैं नीचा दिखाता हूं क्योंकि "यह एकमात्र फायदा है" बस सच नहीं है और काफी कम है। विधियों में अच्छी तरह से समान कार्यान्वयन हो सकता है, लेकिन उनके अलग-अलग अर्थ हैं । कंसोल आपको उदाहरण के लिए लॉग स्तर फ़िल्टरिंग को मामूली रूप से कार्यान्वित करने देता है।
रिक्सो

4
कंसोल.लॉग = स्टडआउट, जबकि कंसोल। शेर = स्टैडर
क्रेग वेन

9
developer.mozilla.org/en-US/docs/Web/API/Console/info - "फ़ायरफ़ॉक्स और क्रोम में, वेब कंसोल के लॉग में इन मदों के बगल में एक छोटा" i "आइकन प्रदर्शित होता है" - image.ibb .co / gYrZHe / infolog.png
ed '

5
@EdwardSammutAlessi मैं क्रोम का उपयोग कर रहा हूं और पुनः प्रदर्शित करने में सक्षम नहीं हूं और आई-आइकन प्राप्त करने के लिए
chevybow

एक डाटापॉइंट: फ़ायरफ़ॉक्स 78: लॉग इन करें। आउटपुट से पहले) (मैं सर्कल में) प्रिंट करता है। क्रोम 84: नहीं है।
टॉम हंड्ट

34

जबकि console.logऔर console.infoअलग नहीं हो सकता है, केवल रंग को छोड़कर अन्य उपयोग हैं। उदाहरण के लिए, एस्लिंट जैसे लिंटर का उपयोग करते समय, आप console.logचेतावनी संदेश प्रदान करने के लिए सेट कर सकते हैं । मान लीजिए कि आप केवल console.logअपने विकास के उद्देश्यों के लिए उपयोग करना चाहते हैं और उन console.infoसूचनाओं के लिए उपयोग करना चाहते हैं जिनकी अंतिम उपयोगकर्ताओं को आवश्यकता हो सकती है। लिंटर के साथ अब आपके पास आपके अस्थायी का एक दृश्य और प्रत्यक्ष अनुस्मारक है console.logजो आपको विकास के दौरान सहायता करता है, लेकिन कमिट / प्रकाशन से पहले हटा दिया जाना चाहिए।


3
मुझे नहीं पता कि मुझे यह उत्तर अधिक उपयुक्त क्यों लगा, फिर अन्य सभी, अच्छा एक @ फ़िगडॉन।
श्रेयन मेहता

1
मैं सहमति देता हूं। महान समाधान देव और उत्पादन मोड के लिए उपयोग के साथ। आप कंसोल.लॉग पास नहीं करेंगे! (स्टाफ और तलवार हाथ में)
टॉमस वैंकॉयली

26

डॉक्स के अनुसार यह बहुत स्पष्ट है।

कंसोल.info ([डेटा], [...]) # कंसोल के समान।

कंसोल.रोर ([डेटा], [...] # कंसोल के समान है। स्टोल के लिए प्रिंट लेकिन प्रिंट।

कंसोल.वरन ([डेटा], [...] # कंसोल के समान।

इसका मतलब यह है कि कोई लाभ या नकारात्मक पहलू नहीं है। info== log, और warn== error। जब तक आप प्रिंट करना चाहते हैं stderr, infoऔर logकाम करेंगे या नहीं।


23

दिखने में, कोई अंतर के बीच वास्तव में console.log, console.info, console.warn, साथ ही console.errorके बारे में सर्वर साइड (टर्मिनल)

हालांकि, वहाँ रहे हैं हल्के मॉड्यूल है कि जोड़ने के नीले, नारंगी और लाल रंग के लिए console.info, console.warnके साथ-साथ console.errorक्रमशः। उसके द्वारा, कंसोल API क्लाइंट-साइड की तरह व्यवहार करता है।

 npm i console-info console-warn console-error --save-dev;

यहां छवि विवरण दर्ज करें


10

स्वीकृत उत्तर के अतिरिक्त एक और विवरण: क्रोम और फायरफॉक्स में, console.infoलॉग लाइनें थोड़ी सी आई आइकन के साथ उपसर्ग की जाती हैं , जबकि console.logलाइनें नहीं होती हैं। warnऔर errorलाइनों को क्रमशः थोड़ा त्रिकोण और x के साथ उपसर्ग किया जाता है।


जैसा कि कहीं और देखा गया है: log.info आउटपुट से पहले फ़ायरफ़ॉक्स 78: el (मैं सर्कल में) प्रिंट करता है। क्रोम 84: नहीं
टॉम हंड

3

stdin उपयोगकर्ता से इनपुट पढ़ने के लिए एक पठनीय धारा।

stdout एक लिखित स्ट्रीम, या तो सिंक्रोनाइज़ या एसिंक्रोनस रूप से।

stderr त्रुटि संदेशों के लिए इच्छित अवरोधक तुल्यकालिक लेखन स्ट्रीम।

स्टडआउट या नॉन-ब्लॉकिंग फंक्शन हैं: कंसोल.लॉग, कंसोल.इनफो, यूसेज.पुट्स, यूसेज.प्रिंट और स्टादर।

अवरुद्ध functons हैं: console.warn, console.error, util.debug और process.stdin (उपयोगकर्ता इनपुट प्राप्त करने के लिए एक पठनीय स्ट्रीम)।


2

यह स्थापित किया गया है कि लॉग और जानकारी मूल रूप से एक ही बात है, लेकिन मुझे यकीन नहीं है कि पूरी तरह से सवाल का जवाब देता है:

कंसोल.लॉग बनाम कंसोल.इन का उपयोग करने का क्या लाभ है?

एक लाभ, जो पहले ही उल्लेख किया गया है, के अलावा, क्या आप प्रत्येक का उपयोग एक अलग उद्देश्य के लिए कर सकते हैं। उदाहरण के लिए, आप कंसोल का उपयोग कर सकते हैं। केवल त्वरित डिबगिंग और कंसोल के लिए थूकने की चीजों के लिए उपयोग करें, जबकि आप कंसोल का उपयोग कर सकते हैं। स्थायी संदेश के लिए आप अपने कोड में कंसोल को आउटपुट करना चाहते हैं, जैसे कि वर्तमान एप्लिकेशन स्थिति की जानकारी । तब जब आपके पास एक ऐसी स्थिति होती है जहाँ आपके कंसोल में एक यादृच्छिक वस्तु छपी होती है और आपको एहसास होता है कि आप दुर्घटना से कहीं लॉग इन कर चुके हैं, तो आप 'कंसोल.लॉग' के लिए एक वैश्विक खोज कर सकते हैं और हर उदाहरण को हटा सकते हैं और आत्मविश्वास रख सकते हैं आपने वहां से निकलने के लिए जो कुछ भी महत्वपूर्ण था, उसे नहीं हटाया।


0

विभिन्न लॉगिंग स्तर आपको अपने कंसोल में शोर स्तर का प्रबंधन करने देते हैं: दोनों फ़ायरफ़ॉक्स (मैं अभी 78 का उपयोग कर रहा हूं) और क्रोम (84) devtools में, js कंसोल आपको आउटपुट के "डिबग स्तर" का चयन करने देता है। देख। एफएफ आप की दृश्यता टॉगल करने देता है console.error, .warn, .log, .info, और .debugप्रत्येक के लिए अलग-अलग बटन (जिसे आप दिखाना, कितने दबा दिया गया जब "बंद"), जबकि क्रोम अगले आइटम के लिए checkmarks के साथ एक ड्रॉपडाउन है (क्लिक करके संदेशों .infoऔर .logद्वारा नियंत्रित कर रहे "जानकारी" एक, और .debug"वर्बोस" द्वारा)। यदि क्रोम दबा हुआ था, तो क्रोम ड्रॉपडाउन लेबल ("सभी स्तर" या जो भी आप सेट करते हैं) लाल हो जाता है।


0

मैंने कहां देखा है console.log डिबगिंग के लिए अस्थायी रूप से राज्य की जानकारी लॉगिंग के लिए है।

console.info एक अधिक स्थायी बात है - जैसे कि यह कहना कि किस पोर्ट पर कुछ चल रहा है, और कुछ ऐसा है जिसे आप डिबगिंग करने के बाद काट नहीं पाएंगे।

इससे आपके कोड को कमिट करने में आसानी होती है। तुम भी अपने linter कंसोल को रोकने के लिए एक नियम हो सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.