मैं त्रुटि कंसोल के लिए एक संदेश कैसे मुद्रित कर सकता हूं, अधिमानतः एक चर सहित?
उदाहरण के लिए, कुछ इस तरह:
print('x=%d', x);
मैं त्रुटि कंसोल के लिए एक संदेश कैसे मुद्रित कर सकता हूं, अधिमानतः एक चर सहित?
उदाहरण के लिए, कुछ इस तरह:
print('x=%d', x);
जवाबों:
फायरबग स्थापित करें और फिर आप उपयोग कर सकते हैं console.log(...)
और console.debug(...)
, आदि ( अधिक के लिए प्रलेखन देखें )।
console.log()
आईई सहित सभी ब्राउज़रों में काम करना चाहिए। हालाँकि, सभी मामलों में, आपको उस समय डिबगर विंडो को खोलना console
होगा , अन्यथा कॉल त्रुटियों को उत्पन्न करेगा।
console.error(message); //gives you the red errormessage
console.log(message); //gives the default message
console.warn(message); //gives the warn message with the exclamation mark in front of it
console.info(message); //gives an info message with an 'i' in front of the message
आप अपने लॉगिंग संदेशों में CSS भी जोड़ सकते हैं:
console.log('%c My message here', "background: blue; color: white; padding-left:10px;");
console.log
आपके उपयोग के ये सभी वर्ष कंसोल के अंदर css का उपयोग करने में सक्षम हैं: |
अपवादों को जावास्क्रिप्ट कंसोल में लॉग किया जाता है। यदि आप फायरबग को निष्क्रिय रखना चाहते हैं, तो आप इसका उपयोग कर सकते हैं ।
function log(msg) {
setTimeout(function() {
throw new Error(msg);
}, 0);
}
उपयोग:
log('Hello World');
log('another message');
throw
लपेटा जाना चाहिए setTimeout
?
क्रॉस-ब्राउज़र पर काम करने वाला एक अच्छा तरीका यह है कि डीबगिंग जावास्क्रिप्ट में उल्लिखित किया जाए : अपने अलर्ट को फेंक दें! ।
throw()
निश्चित रूप से ऐसा करने का तरीका नहीं है। आप जल्दी या बाद में परेशानी में पड़ेंगे। मेरे लिए यह जल्दी था :(
यहां ब्राउज़र के एरर कंसोल में किसी मैसेज को कैसे प्रिंट किया जाए, इस पर डिबगर कंसोल को नहीं, शाब्दिक सवाल का हल है। (डिबगर को बायपास करने के अच्छे कारण हो सकते हैं।)
जैसा कि मैंने त्रुटि कंसोल में एक संदेश प्राप्त करने के लिए एक त्रुटि को फेंकने के सुझाव के बारे में टिप्पणियों में उल्लेख किया है, एक समस्या यह है कि यह निष्पादन के धागे को बाधित करेगा। यदि आप थ्रेड को बाधित नहीं करना चाहते हैं, तो आप सेट थ्रेडआउट का उपयोग करके त्रुटि को एक अलग थ्रेड में फेंक सकते हैं। इसलिए मेरा समाधान (जो इवो डेनियलका द्वारा एक के विस्तार के लिए निकला):
var startTime = (new Date()).getTime();
function logError(msg)
{
var milliseconds = (new Date()).getTime() - startTime;
window.setTimeout(function () {
throw( new Error(milliseconds + ': ' + msg, "") );
});
}
logError('testing');
मैं शुरुआती समय से मिलीसेकंड में समय शामिल करता हूं क्योंकि टाइमआउट उस आदेश को तिरछा कर सकता है जिसमें आप संदेशों को देखने की उम्मीद कर सकते हैं।
त्रुटि विधि का दूसरा तर्क फ़ाइलनाम के लिए है, जो बेकार फ़ाइल नाम और लाइन नंबर के आउटपुट को रोकने के लिए यहां एक रिक्त स्ट्रिंग है। कॉलर फ़ंक्शन को प्राप्त करना संभव है, लेकिन स्वतंत्र ब्राउज़र में स्वतंत्र तरीके से नहीं।
यह अच्छा होगा यदि हम त्रुटि आइकन के बजाय एक चेतावनी या संदेश आइकन के साथ संदेश प्रदर्शित कर सकते हैं, लेकिन मुझे ऐसा करने का कोई तरीका नहीं मिल सकता है।
थ्रो का उपयोग करने के साथ एक और समस्या यह है कि इसे पकड़ा जा सकता है और एक संलग्न प्रयास द्वारा पकड़ा जा सकता है, और थ्रो को एक अलग थ्रेड में डालने से उस बाधा से भी बचा जाता है। हालांकि, अभी तक एक और तरीका है कि त्रुटि को पकड़ा जा सकता है, जो कि है अगर window.onerror हैंडलर को एक के साथ बदल दिया जाता है जो कुछ अलग करता है। वहाँ तुम्हारी मदद नहीं कर सकता।
वास्तव में सवाल का जवाब देने के लिए:
console.error('An error occurred!');
console.error('An error occurred! ', 'My variable = ', myVar);
console.error('An error occurred! ' + 'My variable = ' + myVar);
त्रुटि के बजाय, आप जानकारी, लॉग या चेतावनी का उपयोग भी कर सकते हैं।
console.error(..)
है कि यह एक गैर-मानक विशेषता है और इसका उपयोग उत्पादन में नहीं किया जाना चाहिए। इसमें आपको क्या फायदा होगा? क्या आपके पास console.error
बनाम का उपयोग करके नौसिखिया प्रोग्रामर के लिए कोई सुझाव है console.log
?
console.log(...)
"गैर-मानक" भी माना जाता है। उस संबंध में, console.error
के रूप में के रूप में स्थिर है console.log
।
यदि आप फायरबग का उपयोग कर रहे हैं और आईई, सफारी या ओपेरा का समर्थन करने की आवश्यकता है, तो फायरबग लाइट इन ब्राउज़रों के लिए कंसोल.लॉग () समर्थन जोड़ता है।
वेबकिट वेब निरीक्षक भी समर्थन करता है Firebug के कंसोल एपीआई (बस के लिए एक छोटी सी अलावा दान के जवाब )।
ऊपर उल्लिखित 'फेंक ()' के बारे में एक नोट। ऐसा लगता है कि यह पृष्ठ के निष्पादन को पूरी तरह से बंद कर देता है (मैंने IE8 में जांच की), इसलिए "लॉगिंग प्रक्रियाओं पर" लॉगिंग करने के लिए यह बहुत उपयोगी नहीं है (जैसे एक निश्चित चर को ट्रैक करना ...)
मेरा सुझाव शायद आपके दस्तावेज़ में कहीं एक textarea तत्व जोड़ना है और जब भी आवश्यकता हो, जानकारी लॉग करने के लिए इसका मूल्य (जो इसके पाठ को बदल देगा) को बदलना (या जोड़ना) ।
console.log()
, throw()
आदि का उपयोग करना होगा । इसके अलावा, जैसा throw()
कि आप को लगता है कि यह व्यवहार के साथ कुछ भी गलत नहीं है - तथ्य यह है कि यह निष्पादन को रोकता है जानबूझकर और दस्तावेज ( डेवलपर)। mozilla.org/en-US/docs/Web/JavaScript/Reference/… ), और यह अपवाद है कि कैसे अन्य प्रोग्रामिंग भाषाओं में अपवादों को फेंका / पकड़ा जाता है। (यदि आप निष्पादन को रोकने के बिना एक चर की सामग्री को लॉग इन करना चाहते हैं, तो console.log()
इसके लिए क्या है।)
console.log
- इसलिए लोग विकल्प दे रहे थे। के बारे में throw()
निष्पादन रोक, के पाठ्यक्रम यह जानबूझकर है, कोई भी कहा कि यह नहीं है। यही कारण है कि यह आम तौर पर है की नहीं एक अच्छा तरीका क्रम है, जो ओ पी चाहता था में डिबग जानकारी लॉग इन करने के ...
हमेशा की तरह, इंटरनेट एक्सप्लोरर रोलर्सकेट्स में बड़ा हाथी है जो आपको बस उपयोग करने से रोकता है console.log()
।
jQuery के लॉग को काफी आसानी से अनुकूलित किया जा सकता है, लेकिन हर जगह इसे जोड़ने के लिए एक दर्द है। एक उपाय यदि आप jQuery का उपयोग कर रहे हैं, तो इसे अंत में अपनी jQuery फ़ाइल में डालना है, पहले minified:
function log()
{
if (arguments.length > 0)
{
// Join for graceful degregation
var args = (arguments.length > 1) ? Array.prototype.join.call(arguments, " ") : arguments[0];
// This is the standard; Firebug and newer WebKit browsers support this.
try {
console.log(args);
return true;
} catch(e) {
// Newer Opera browsers support posting erros to their consoles.
try {
opera.postError(args);
return true;
}
catch(e)
{
}
}
// Catch all; a good old alert box.
alert(args);
return false;
}
}
यात्रा https://developer.chrome.com/devtools/docs/console-api एक पूरा सांत्वना API संदर्भ के लिए
console.error(object[Obj,....])\
इस स्थिति में, ऑब्जेक्ट आपकी त्रुटि स्ट्रिंग होगी
function foo() {
function bar() {
console.trace("Tracing is Done here");
}
bar();
}
foo();
console.log(console); //to print console object
console.clear('console.clear'); //to clear console
console.log('console.log'); //to print log message
console.info('console.info'); //to print log message
console.debug('console.debug'); //to debug message
console.warn('console.warn'); //to print Warning
console.error('console.error'); //to print Error
console.table(["car", "fruits", "color"]);//to print data in table structure
console.assert('console.assert'); //to print Error
console.dir({"name":"test"});//to print object
console.dirxml({"name":"test"});//to print object as xml formate
To Print Error:- console.error('x=%d', x);
console.log("This is the outer level");
console.group();
console.log("Level 2");
console.group();
console.log("Level 3");
console.warn("More of level 3");
console.groupEnd();
console.log("Back to level 2");
console.groupEnd();
console.log("Back to the outer level");
ऐसा करने का सबसे सरल तरीका है:
console.warn("Text to print on console");
अपने प्रश्न का उत्तर देने के लिए आप ES6 सुविधाओं का उपयोग कर सकते हैं,
var var=10;
console.log(`var=${var}`);
यह कंसोल पर प्रिंट नहीं होता है, लेकिन आपको आपके संदेश के साथ एक अलर्ट पॉपअप खोलेगा जो कुछ डीबगिंग के लिए उपयोगी हो सकता है:
बस करो:
alert("message");