আমি ত্রুটি কনসোলে কীভাবে কোনও বার্তা প্রিন্ট করতে পারি?
উদাহরণস্বরূপ, এর মতো কিছু:
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
আপনি আপনার লগিং বার্তাগুলিতে সিএসএস যুক্ত করতে পারেন:
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');
আমি শুরুর সময় থেকে সময়টিকে মিলিসেকেন্ডে অন্তর্ভুক্ত করি কারণ সময়সীমাটি বার্তাটি দেখার জন্য আপনি যে ক্রমটি প্রত্যাশা করতে পারেন তা ক্রম করতে পারে।
ত্রুটি পদ্ধতির দ্বিতীয় যুক্তি হ'ল ফাইলনামের জন্য যা এখানে অকেজো ফাইল নাম এবং লাইন নম্বর আউটপুট রোধ করতে খালি স্ট্রিং। কলার ফাংশন পাওয়া সম্ভব তবে সাধারণ ব্রাউজারে স্বতন্ত্র উপায়ে নয়।
যদি আমরা ত্রুটি আইকনটির পরিবর্তে কোনও সতর্কতা বা বার্তা আইকন সহ বার্তাটি প্রদর্শন করতে পারি তবে এটি দুর্দান্ত হবে তবে আমি এটি করার উপায় খুঁজে পাই না।
নিক্ষেপ ব্যবহারের সাথে আর একটি সমস্যা হ'ল এটি কোনও সংক্রামক চেষ্টা-দ্বারা ধরা পড়ে ফেলে দেওয়া যেতে পারে, এবং একটি পৃথক থ্রেডে থ্রো রাখাও সেই বাধা এড়ায়। তবে ত্রুটিটি ধরা পড়ার আরও একটি উপায় রয়েছে, এটি হ'ল যদি উইন্ডো.অনরআরর হ্যান্ডলারের পরিবর্তে কিছু আলাদা হয় does আপনাকে সেখানে সাহায্য করতে পারে না।
আসলে প্রশ্নের উত্তর দিতে:
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
।
আপনি যদি ফায়ারব্যাগ ব্যবহার করছেন এবং পাশাপাশি আইই, সাফারি বা অপেরা সমর্থন করতে চান তবে ফায়ারব্যাগ লাইট এই ব্রাউজারগুলিতে কনসোল.লগ () সমর্থন যুক্ত করে।
ওয়েবকিট ওয়েব ইন্সপেক্টর এছাড়াও সমর্থন ফায়ারবাগকে এর কনসোল এপিআই (ঠিক করার জন্য একটি ছোটখাট উপরন্তু ড্যান এর উত্তর )।
উপরে উল্লিখিত 'নিক্ষেপ ()' সম্পর্কে একটি নোট। দেখে মনে হচ্ছে এটি পৃষ্ঠার সম্পূর্ণ সম্পাদন বন্ধ করে দেয় (আমি আইই 8 তে চেক করেছি), সুতরাং এটি "চলমান প্রক্রিয়াগুলি" লগিংয়ের জন্য খুব কার্যকর নয় (কোনও নির্দিষ্ট ভেরিয়েবল ট্র্যাক করতে চাই ...)
আমার পরামর্শ সম্ভবত আপনার নথির কোথাও একটি পাঠ্য উপাদান যুক্ত করা এবং যখনই প্রয়োজন তথ্য লগ করার জন্য এর মান (যা এটির পাঠ্য পরিবর্তন করবে) পরিবর্তন করা ...
console.log()
, throw()
ইত্যাদি ছাড়াও, সেখানে আচরণ সঙ্গে কোন কিছুই ভুল না throw()
হিসাবে আপনি পরোক্ষভাবে বলে মনে হচ্ছে - আসলে এটা সঞ্চালনের স্টপ যে ইচ্ছাকৃত এবং নথিভুক্ত (হয় ডেভেলপার। mozilla.org/en-US/docs/Web/JavaScript/References/… ), এবং এটি কীভাবে অন্যান্য প্রোগ্রামিং ভাষায় ব্যতিক্রম ছুঁড়ে / ধরা হয় তার সাথে সামঞ্জস্য। (যদি আপনি কার্যকরকরণ বন্ধ না করে কোনও ভেরিয়েবলের বিষয়বস্তু লগইন করতে চান তবে console.log()
এটিই এর জন্য
console.log
- তাই লোকেরা বিকল্পধারা দিচ্ছিল। আমাদের সম্পর্কে throw()
সঞ্চালনের বাঁধন, অফ কোর্স এটা ইচ্ছাকৃত আছে, কেউ বলেনি যে এটা নয়। এ কারণেই রানটাইমে ডিবাগ তথ্য লগ করার জন্য এটি সাধারণত ভাল উপায় নয় যা ওপি যা চেয়েছিল ...
বরাবরের মতো, ইন্টারনেট এক্সপ্লোরার হ'ল রোলারকেটগুলির মধ্যে একটি বড় হাতি যা আপনাকে কেবল সহজেই ব্যবহার বন্ধ করে দেয় console.log()
।
jQuery এর লগটি বেশ সহজেই মানিয়ে নেওয়া যায় তবে এটিকে সর্বত্র যুক্ত করার ব্যথা। আপনি jQuery ব্যবহার করছেন তবে একটি সমাধান হ'ল প্রথমে এটি আপনার jQuery ফাইলে রেখে দেওয়া হবে, প্রথমে মিনিকেড করা:
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 দেখুন
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");