यह ब्लॉग लॉगिंग लाइब्रेरी के उपयोग के महत्व पर चर्चा करेगा और Node.js के लिए हमारे द्वारा देखे गए 10 सर्वश्रेष्ठ समीक्षा किए गए लॉगिंग टूल को नीचे चलाएगा। @Playerzero पर हम लॉग इवेंट बनाने और प्रबंधित करने के लिए अक्सर नोड.जेएस लॉगिंग लाइब्रेरी का उपयोग करते हैं। इस बारे में अधिक जानें कि आज हम फ्रंट और बैकएंड एप्लिकेशन दोनों के लिए क्या मायने रखते हैं, इसकी निगरानी के लिए हम अपने अद्वितीय दृष्टिकोण को कैसे ला रहे हैं https://www.playerzero.app/
पिनो
विंस्टन
बनियान
मॉर्गन
छांटने का स्तर
Log4js
एनपीएमलॉग
दहाड़
दरियाफ्त
सिगनल
उच्च-स्तरीय परिप्रेक्ष्य से, Node.js लॉगिंग महत्वपूर्ण है क्योंकि यह डेवलपर्स को घटनाओं और उनके आवेदन के प्रदर्शन को ट्रैक करने, समस्याओं का निदान करने और उन्हें ठीक करने, सिस्टम व्यवहार की निगरानी करने और सूचित निर्णय लेने में मदद करता है। लॉगिंग एक एप्लिकेशन की गतिविधि का रिकॉर्ड प्रदान करता है, जिससे डेवलपर्स को समस्याओं की पहचान करने और डिबग करने, उपयोगकर्ता के व्यवहार को समझने और सिस्टम के समग्र प्रदर्शन और स्थिरता में सुधार करने की अनुमति मिलती है। त्रुटियों का पता लगाने और उन्हें ठीक करने, सिस्टम के प्रदर्शन की निगरानी करने और सुरक्षा घटनाओं का पता लगाने के लिए लॉगिंग उत्पादन वातावरण में भी उपयोगी हो सकता है।
जब भी किसी एप्लिकेशन में कुछ बहुत गलत हो जाता है, तो डेवलपर्स के पास स्टैक ट्रेस के माध्यम से इसके स्रोत को ट्रैक करने का विकल्प होता है। लेकिन... अकेले स्टैक ट्रेस पर भरोसा करने से केवल आधी तस्वीर ही बनती है। ट्रेसिंग आपको एप्लिकेशन के निष्पादन के बारे में जानकारी प्रदान करेगा, जिसमें अनुरोधों का प्रवाह, डेटाबेस प्रश्न, बाहरी एपीआई कॉल और प्रदर्शन मेट्रिक्स शामिल हैं - जो काफी उपयोगी हो सकते हैं। सामान्य तौर पर, निशान का उपयोग एक विस्तृत स्तर पर किसी एप्लिकेशन के व्यवहार को समझने और प्रदर्शन की बाधाओं की पहचान करने के लिए किया जाता है।
लॉगिंग चित्र के दूसरे भाग में भरता है। लॉगिंग किसी एप्लिकेशन से संबंधित संदेशों और घटनाओं को रिकॉर्ड करने की प्रक्रिया है, जैसे त्रुटियां, चेतावनियां, प्रदर्शन मेट्रिक्स और डीबग जानकारी। Node.js में लॉगिंग का उपयोग मुद्दों का निदान करने, उपयोगकर्ता के व्यवहार को समझने और किसी एप्लिकेशन के समग्र प्रदर्शन और स्थिरता में सुधार करने के लिए किया जाता है। यह एक एप्लिकेशन में गतिविधि का रिकॉर्ड भी प्रदान करता है, जिससे डेवलपर्स को समस्याओं की पहचान करने और डिबग करने और अधिक सूचित निर्णय लेने की अनुमति मिलती है।
आपको Node.js लॉगिंग लाइब्रेरी का उपयोग करने के कई कारण हैं:
लॉगिंग स्तर लॉग संदेशों के महत्व या गंभीरता को वर्गीकृत करने का एक तरीका है। आमतौर पर, कई स्तर होते हैं, गंभीर त्रुटियों से लेकर सूचनात्मक संदेशों तक, और प्रत्येक स्तर एक संख्यात्मक मान से जुड़ा होता है जिसका उपयोग लाइब्रेरी में लॉग संदेशों को फ़िल्टर करने के लिए किया जा सकता है। यहाँ सबसे आम स्तर हैं:
FATAL
लॉग स्तर
शायद अस्वाभाविक रूप से, FATAL
लॉग स्तर गंभीरता का एक स्तर है जो किसी एप्लिकेशन में एक महत्वपूर्ण त्रुटि को इंगित करता है - जिसका अर्थ है कि FATAL
स्तर के साथ लॉग इंगित करता है कि एप्लिकेशन डेवलपर के हस्तक्षेप के बिना सामान्य रूप से चलना जारी नहीं रख सकता है।
ERROR
लॉग स्तर
ERROR
लॉग स्तर इंगित करता है कि एक एप्लिकेशन वर्तमान में चलने में सक्षम है, लेकिन यह एक समस्या का सामना कर रहा है। आमतौर पर, यह इंगित करता है कि एप्लिकेशन में एक आवश्यक कार्य विफल हो गया - कि एक अपवाद, अप्रत्याशित व्यवहार या गलत इनपुट था।
WARN
लॉग स्तर
WARN
ERROR
से कम गंभीर लॉग स्तर है, लेकिन फिर भी, इसे अनदेखा नहीं किया जाना चाहिए। WARN
लॉग का उपयोग सक्रिय रूप से मुद्दों की पहचान करने और समस्याओं को और अधिक गंभीर होने से रोकने के लिए किया जा सकता है क्योंकि वे संकेत देते हैं कि आपके आवेदन में कुछ अधिक महत्वपूर्ण समस्या के लिए उत्प्रेरक बन सकता है।
INFO
लॉग स्तर
INFO
लॉग स्तर एक प्रकार का लॉग संदेश है जिसका उपयोग लॉगिंग सिस्टम में एक सामान्य, सूचनात्मक संदेश को इंगित करने के लिए किया जाता है। यह आम तौर पर रूटीन लॉग करने के लिए उपयोग किया जाता है, एप्लिकेशन या सिस्टम में अपेक्षित घटनाएं, जैसे प्रक्रिया की शुरुआत, कार्य पूरा करना, या सिस्टम की स्थिति में बदलाव। इन चेतावनियों को आम तौर पर अनदेखा किया जा सकता है क्योंकि वे इस बात की पुष्टि करने के लिए होती हैं कि कोई एप्लिकेशन ठीक से काम कर रहा है।
DEBUG
लॉग स्तर
विशिष्ट रूप से, DEBUG
लॉग स्तर ऐसी जानकारी प्रदान करता है जो डीबगिंग प्रक्रिया के भीतर सख्ती से उपयोगी होती है। DEBUG
लॉग सबसे विस्तृत प्रकार का लॉग संदेश है, और किसी एप्लिकेशन के आंतरिक कामकाज का एक विस्तृत दृश्य प्रदान करता है। DEBUG
लॉग का मुख्य उद्देश्य डेवलपर्स को यह समझने में मदद करना है कि सिस्टम क्या कर रहा है, बग और मुद्दों की पहचान करें और समस्याओं का निदान करें।
Pino एक लंबे समय से स्थापित और बहुत लोकप्रिय लॉगिंग टूल है, जिसमें 10.9K से अधिक Github स्टार और npm पर लाखों डाउनलोड हैं। पिनो Node.js के लिए एक लोकप्रिय लॉगिंग लाइब्रेरी है क्योंकि यह कई प्रमुख विशेषताएं प्रदान करती है जो इसे Node.js अनुप्रयोगों में उपयोग के लिए उपयुक्त बनाती हैं:
तेज - पिनो को प्रदर्शन पर ध्यान देने के साथ तेज और हल्का बनाया गया है। यह लॉग संदेशों के लिए एक बाइनरी प्रारूप का उपयोग करता है, जो इसे लॉग आउटपुट को जल्दी और कुशलता से उत्पन्न करने की अनुमति देता है।
संरचित लॉग - पिनो संदेशों को JSON प्रारूप में लॉग करता है, जो लॉग डेटा के आसान पार्सिंग, फ़िल्टरिंग और विश्लेषण की अनुमति देता है। इससे लॉग डेटा को खोजना, विज़ुअलाइज़ करना और उसका विश्लेषण करना और लॉग डेटा को अन्य सिस्टम में एकीकृत करना आसान हो जाता है।
विस्तार करने में आसान - पिनो को अत्यधिक एक्स्टेंसिबल होने के लिए डिज़ाइन किया गया है, और इसमें कई अंतर्निहित प्लगइन्स शामिल हैं जिनका उपयोग अतिरिक्त कार्यक्षमता जोड़ने के लिए किया जा सकता है, जैसे किसी फ़ाइल में लॉग डेटा लिखना या रिमोट सर्वर पर लॉग डेटा भेजना।
लो ओवरहेड - पिनो अपने न्यूनतम संसाधन उपयोग के कारण अत्यधिक कुशल Node.js लॉगिंग लाइब्रेरी है। पिनो के साथ लॉगिंग प्रक्रिया धीरे-धीरे संदेशों को जमा करती है, जिससे एप्लिकेशन का थ्रॉटलिंग होता है और प्रति सेकंड अनुरोधों की संख्या में कमी आती है। थ्रॉटलिंग एक ऐसी तकनीक है जिसमें किसी ईवेंट से जुड़े फ़ंक्शन को निर्दिष्ट समय सीमा के भीतर केवल एक बार चलाने के लिए ट्रिगर किया जाता है, भले ही ईवेंट को कई बार सक्रिय किया गया हो।
ट्रांसपोर्ट - पिनो लॉग भेजने के लिए कई प्रकार के विकल्प प्रदान करता है, जिसमें फ़ाइलों को लिखना, कंसोल में प्रदर्शित करना और सेंट्री, एज़्योर एप्लिकेशन इनसाइट्स और कॉचडीबी जैसे प्लेटफ़ॉर्म का उपयोग करना शामिल है।
Node.js एप्लिकेशन में पिनो का उपयोग करने के लिए, इन चरणों का पालन करें:
पिनो को स्थापित करने के लिए, बस इसे एक नई निर्देशिका में निम्न कमांड चलाकर स्थापित करें:
npm install pino
आयात करें - अपने Node.js एप्लिकेशन में, अपनी फ़ाइल के शीर्ष पर कोड की निम्न पंक्ति जोड़कर Pino आयात करें:
const pino = require('pino');
इनिशियलाइज़ेशन - लॉगर इंस्टेंस बनाकर पिनो को इनिशियलाइज़ करें, उदाहरण के लिए:
const logger = pino({ level: 'info' });
यह स्क्रिप्ट कंसोल पर INFO
और उससे ऊपर के लॉगिंग स्तर के साथ लॉग बनाती है।
स्तर को जानकारी पर सेट करके, पिनो लॉगिंग स्तर INFO
, WARN
, ERROR
, और FATAL
के साथ संदेशों को लॉग करेगा। INFO
से नीचे के लॉगिंग स्तर वाले संदेश, जैसे DEBUG
, लॉग नहीं किए जाएँगे।
यह कोड केवल एक पिनो लकड़हारा उदाहरण बनाता है जिसमें लॉग स्तर INFO पर सेट होता है। जब तक आप लॉगर इंस्टेंस का उपयोग करके कुछ लॉग नहीं करते तब तक कोई लॉग संदेश उत्पन्न या प्रदर्शित नहीं होता है। उदाहरण के लिए:
logger.info('This is an info message');
यह कंसोल पर निम्न आउटपुट का उत्पादन करेगा:
{"level":30,"time":1624825088703,"msg":"This is an info message","pid":1234,"hostname":"my-machine"}
कंसोल पर प्रदर्शित लॉग डेटा में लॉग स्तर, टाइमस्टैम्प जब रिकॉर्ड किया गया था, संदेश लॉग किया जा रहा है, लॉग के लिए एक पहचानकर्ता और होस्टनाम शामिल है।
लॉगिंग - आप अपने एप्लिकेशन में अन्य संदेशों को लॉग करने के लिए logger
इंस्टेंस का भी उपयोग कर सकते हैं। उदाहरण के लिए:
logger.warn('This is a warning message'); logger.error('This is an error message');
आउटपुट - डिफ़ॉल्ट रूप से, पिनो कंसोल में लॉग करता है। यदि आप आउटपुट बदलना चाहते हैं, तो आप पिनो के उपलब्ध ट्रांसपोर्ट में से किसी एक का उपयोग कर सकते हैं, जिसका हमने पहले उल्लेख किया था, जैसे फ़ाइल में लिखना, संतरी जैसी दूरस्थ सेवा में लॉग भेजना, या एज़्योर एप्लिकेशन इनसाइट्स का उपयोग करना। अधिक जानकारी के लिए, आप पिनो के "ज्ञात परिवहन" खंड का उल्लेख कर सकते हैं।
पिनो का pino-pretty
बेसिक एनडीजेएसओएन फॉर्मेटर फीचर पिनो लॉग्स के लिए एक बेहतरीन सरल फॉर्मेटर है, और इसे स्थापित करना आसान है। यहां बताया गया है कि इसे कैसे शुरू करें और चलाएं:
चरण 1 - अपने टर्मिनल में निम्न आदेश चलाकर अपने नोड.जेएस प्रोजेक्ट में निर्भरता के रूप में पिनो-सुंदर स्थापित करें:
npm install pino-pretty
चरण 2 - अपनी फ़ाइल के शीर्ष पर कोड की निम्न पंक्ति जोड़कर अपने Node.js एप्लिकेशन में pino-pretty
आयात करें:
const pino = require('pino'); const pinoPretty = require('pino-pretty'); const logger = pino({ level: 'info' }); logger.pipe(pinoPretty());
इन दो कोड स्निपेट्स के साथ, आपने pino-pretty
स्थापित किया है और इसे अपने पिनो लॉग्स को प्रारूपित करने के लिए सेट किया है। अब आप अपने एप्लिकेशन में संदेशों को लॉग करने के लिए लॉगर इंस्टेंस का उपयोग कर सकते हैं और लॉग कंसोल पर एक सुंदर, मानव-पठनीय प्रारूप में प्रदर्शित होंगे।
@RisingStack द्वारा उपलब्ध सर्वोत्तम टूल के साथ Node.js को डीबग कैसे करें में पिनो के साथ डिबगिंग के बारे में और जानें
GitHub पर 20K से अधिक सितारों के साथ, विंस्टन Node.js के लिए एक बहुत लोकप्रिय लॉगिंग लाइब्रेरी है। विंस्टन अपने व्यापक सुविधा सेट और उपयोग में आसानी के कारण Node.js पारिस्थितिकी तंत्र में एक अद्वितीय लॉगिंग लाइब्रेरी है। विंस्टन के अलग होने के कुछ कारण हैं:
अपने नोड.जेएस प्रोजेक्ट में विंस्टन को स्थापित करने के लिए, आप अपने टर्मिनल में निम्न आदेश चलाकर एनपीएम पैकेज मैनेजर का उपयोग कर सकते हैं:
npm install winston
एक बार स्थापना पूर्ण हो जाने के बाद, आप निम्न पंक्ति को शामिल करके अपने Node.js कोड में विंस्टन का आयात और उपयोग कर सकते हैं:
const winston = require('winston');
फिर आप अपने लॉगिंग उदाहरणों को कॉन्फ़िगर करने और बनाने के लिए विंस्टन लाइब्रेरी का उपयोग कर सकते हैं, उदाहरण के लिए:
const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.Console() ] });
यह सूचना स्तर और कंसोल ट्रांसपोर्ट के साथ लॉगर इंस्टेंस बनाता है। आप इस लॉगर इंस्टेंस का उपयोग अपने एप्लिकेशन में संदेशों को लॉग करने के लिए कर सकते हैं, उदाहरण के लिए:
logger.info('Hello World');
यह Hello World
संदेश को सूचना लॉग स्तर के साथ कंसोल में लॉग करेगा।
विंस्टन छह डिफ़ॉल्ट लॉगिंग स्तरों से लैस है, जो RFC5424 दस्तावेज़ में उल्लिखित दिशानिर्देशों के अनुसार व्यवस्थित हैं। स्तरों को संख्यात्मक प्राथमिकता दी जाती है, उच्चतम गंभीरता को सबसे कम संख्या सौंपी जाती है। छह स्तर और उनके संबंधित प्राथमिकता मान हैं:
{ error: 0, warn: 1, info: 2, http: 3, verbose: 4, debug: 5, silly: 6 }
छह लॉग स्तरों में से प्रत्येक के लिए, लॉगर ऑब्जेक्ट पर संबंधित विधि होती है:
logger.error('error'); logger.warn('warn'); logger.info('info'); logger.verbose('verbose'); logger.debug('debug'); logger.silly('silly');
आप लॉगिंग स्तर का प्रतिनिधित्व करने के लिए लॉग () विधि में एक स्ट्रिंग भी पास कर सकते हैं:
logger.log('error', 'error message'); logger.log('info', 'info message');
logger
पर level
संपत्ति तय करती है कि आपके द्वारा कॉन्फ़िगर किए गए ट्रांसपोर्ट पर कौन से लॉग संदेश भेजे जाएंगे। उदाहरण के लिए, यदि level
संपत्ति info
पर सेट है, तो केवल info
या उच्च की गंभीरता वाली लॉग प्रविष्टियाँ लिखी जाएंगी और अन्य सभी को वंचित कर दिया जाएगा। इसका अर्थ है कि वर्तमान कॉन्फ़िगरेशन में, केवल info
, warn
और error
के स्तर वाले लॉग संदेश आउटपुट होंगे।
Bunyan Node.js के लिए एक अद्वितीय लॉगिंग लाइब्रेरी है क्योंकि लॉग डेटा को अधिक संरचित और पठनीय बनाने पर ध्यान केंद्रित किया गया है (वे सादे पाठ के बजाय JSON ऑब्जेक्ट के रूप में लॉग को क्रमबद्ध करके इसे प्राप्त करते हैं)। यहां बताया गया है कि गीथूब पर बनीन के 7k सितारे क्यों हैं:
बनीन को स्थापित करने के लिए, आप अपने टर्मिनल या कमांड प्रॉम्प्ट में निम्न आदेश चला सकते हैं:
npm install bunyan
यह आपके Node.js प्रोजेक्ट में Bunyan लाइब्रेरी और इसकी निर्भरताओं को स्थापित करेगा। एक बार इंस्टॉल हो जाने पर, आपको अपने कोड में लाइब्रेरी की आवश्यकता हो सकती है और इसका उपयोग शुरू कर सकते हैं।
अपने प्रोजेक्ट में बनीन आयात करें - अपनी JavaScript फ़ाइल के शीर्ष पर, निम्न पंक्ति जोड़ें:
const bunyan = require('bunyan');
एक लकड़हारा उदाहरण बनाएँ - अगला, निम्नलिखित कोड का उपयोग करके एक लकड़हारा उदाहरण बनाएँ:
const logger = bunyan.createLogger({ name: 'my-app-name', level: 'info' });
इस उदाहरण में, name
आपके एप्लिकेशन का नाम है और स्तर उस न्यूनतम स्तर को निर्दिष्ट करता है जिसे आप देखना चाहते हैं।
एक संदेश लॉग करें - एक संदेश लॉग करने के लिए, बस बनीन की लॉग विधियों में से किसी एक को कॉल करें, जैसे कि जानकारी, चेतावनी, या त्रुटि, और उस संदेश को पास करें जिसे आप लॉग करना चाहते हैं, जैसे:
logger.info('This is an info log message'); logger.warn('This is a warn log message'); logger.error('This is an error log message');
अपना कोड चलाएँ - अंत में, अपना कोड चलाएँ और आपको कंसोल में लॉग किए गए संदेश दिखाई देने चाहिए।
डिफ़ॉल्ट रूप से, Bunyan लॉग्स को JSON प्रारूप में आउटपुट करता है, जिससे लॉग प्रबंधन टूल के साथ लॉग्स को पार्स करना और उनका विश्लेषण करना आसान हो जाता है। आप Bunyan's streams विकल्प का उपयोग करके प्रारूप को भी अनुकूलित कर सकते हैं।
मॉर्गन कई कारणों से Node.js के लिए एक अद्वितीय लॉगिंग लाइब्रेरी है, मुख्य रूप से मिडलवेयर के रूप में इसकी अनूठी स्थिति। हमारे लेखन के समय GitHub पर 7.3K सितारों के साथ अन्य कारणों से यह बहुत लोकप्रिय हो गया है। मॉर्गन के इतना लोकप्रिय होने के कुछ कारण यहां दिए गए हैं:
एनपीएम का उपयोग कर मॉर्गन पैकेज स्थापित करके प्रारंभ करें:
npm install morgan
स्थापना प्रक्रिया को पूरा करने के बाद, आपको "आवश्यकता" फ़ंक्शन का उपयोग करके लाइब्रेरी को आयात करना होगा और फिर इसे अपने Express.js एप्लिकेशन में मिडलवेयर के रूप में एकीकृत करना होगा।
इसके लिए कोड निम्न जैसा दिखेगा:
var morgan = require('morgan'); app.use(morgan('dev'));
"देव" तर्क मॉर्गन द्वारा प्रदान किया गया एक प्रारूप विकल्प है। मॉर्गन पांच अलग-अलग लॉगिंग प्रारूप प्रदान करता है, जिनमें निम्न शामिल हैं:
tiny
माइनसक्यूल आउटपुट है।short
में प्रतिक्रिया समय शामिल होता है और डिफ़ॉल्ट रूप से लॉग को संक्षिप्त करता है।dev
विकास के दौरान उपयोग के लिए एक संक्षिप्त, रंग-कोडित आउटपुट प्रदान करता हैcommon
अपाचे संयुक्त लॉग आउटपुट का भी उपयोग करता है।combined
मानकीकृत अपाचे संयुक्त लॉग आउटपुट का उपयोग करता है।
मॉर्गन को अपने आवेदन में एकीकृत करते समय आप उपयुक्त तर्क का उपयोग करके इन प्रारूपों के बीच चयन कर सकते हैं, जैसा कि नीचे दिखाया गया है:
app.use(morgan('combined')); app.use(morgan('common')); app.use(morgan('dev')); app.use(morgan('short')); app.use(morgan('tiny'));
लॉगलेवल यहां सूचीबद्ध कुछ अन्य विकल्पों की तुलना में थोड़ा कम लोकप्रिय है, जीथब पर 2.4K सितारों के साथ, लेकिन फिर भी यह एक महान, हल्का लॉगिंग लाइब्रेरी बना हुआ है। यहाँ कुछ कारण दिए गए हैं कि लॉगलेवल Node.js के लिए एक अद्वितीय लॉगिंग लाइब्रेरी क्यों है:
लॉगलेवल सेट अप करने के लिए, आपको पहले इसे npm का उपयोग करके इंस्टॉल करना होगा:
npm install loglevel
एक बार जब आप इसे स्थापित कर लेते हैं, तो आप इसे अपने Node.js प्रोजेक्ट में आयात कर सकते हैं और लॉग स्तर सेट करके इसका उपयोग शुरू कर सकते हैं:
const log = require('loglevel'); log.setLevel(log.levels.ERROR);
लॉग स्तर को ERROR,
आप निर्दिष्ट कर रहे हैं कि केवल ERROR
के गंभीरता स्तर वाले लॉग संदेशों को लॉग किया जाएगा। लॉग स्तर सेट करने के बाद, आप विभिन्न स्तरों पर संदेश लॉग करने के लिए निम्न विधियों का उपयोग कर सकते हैं:
log.trace('This is a trace message'); log.debug('This is a debug message'); log.info('This is an info message'); log.warn('This is a warning message'); log.error('This is an error message');
आपके द्वारा सेट किया गया लॉग स्तर यह निर्धारित करेगा कि कौन से संदेशों को लॉग किया जाएगा और किसे अनदेखा किया जाएगा। उदाहरण के लिए, यदि लॉग स्तर जानकारी पर सेट है, तो केवल log.info और log.warn या log.error का उपयोग करके लॉग किए गए संदेश प्रदर्शित होंगे।
बेशक, हम इसके बड़े भाई, Log4js को सूचीबद्ध किए बिना लॉगलेवल का उल्लेख नहीं कर सकते। Log4js एक जावास्क्रिप्ट लॉगिंग लाइब्रेरी है जिसे लोकप्रिय जावा लॉगिंग लाइब्रेरी Log4j के पोर्ट के रूप में शुरू किया गया था। यह जावास्क्रिप्ट अनुप्रयोगों के लिए एक समान लॉगिंग समाधान प्रदान करने के लिए बनाया गया था और तब से उन्नत लॉगिंग क्षमताओं और सुविधाओं को प्रदान करने के लिए विकसित हुआ है। Github पर 5.6k से अधिक सितारों के साथ, यहां कुछ कारण बताए गए हैं कि Log4js इतना लोकप्रिय क्यों है:
Log4js को स्थापित करने के लिए, आप अपने टर्मिनल में निम्नलिखित कमांड चलाकर npm पैकेज मैनेजर का उपयोग कर सकते हैं:
npm install log4js
यह Log4js और इसकी निर्भरताओं के नवीनतम संस्करण को स्थापित करेगा। फिर आप अपने Node.js एप्लिकेशन में लाइब्रेरी की आवश्यकता कर सकते हैं और संदेशों को लॉग करने के लिए इसका उपयोग करना शुरू कर सकते हैं।
Log4js का उपयोग शुरू करने के लिए, पहले इसे अपने कोड में आवश्यक करें और इसे कॉन्फ़िगर करें:
const log4js = require('log4js'); log4js.configure({ appenders: { console: { type: 'console' } }, categories: { default: { appenders: ['console'], level: 'info' } } }); const logger = log4js.getLogger();
फिर आप विभिन्न स्तरों पर संदेशों को लॉग करने के लिए लकड़हारे का उपयोग कर सकते हैं:
logger.trace('Entering cheese testing'); logger.debug('Got cheese.'); logger.info('Cheese is Gouda.'); logger.warn('Cheese is quite smelly.'); logger.error('Cheese is too ripe!'); logger.fatal('Cheese was breeding ground for listeria.');
विभिन्न लॉग स्तरों के साथ एकाधिक परिशिष्टों (कंसोल और फ़ाइल) में संदेशों को लॉग करने के लिए Log4js का उपयोग करने का एक उदाहरण यहां दिया गया है:
const log4js = require('log4js'); log4js.configure({ appenders: { console: { type: 'console' }, file: { type: 'file', filename: 'app.log' } }, categories: { default: { appenders: ['console'], level: 'info' }, file: { appenders: ['file'], level: 'error' } } }); const logger = log4js.getLogger(); const fileLogger = log4js.getLogger('file'); logger.info('This is an informational message'); fileLogger.error('This is an error message');
इस उदाहरण में, "डिफ़ॉल्ट" श्रेणी वाले लकड़हारे को स्तर की जानकारी या कंसोल से ऊपर वाले संदेशों को लॉग करने के लिए कॉन्फ़िगर किया गया है। श्रेणी "फ़ाइल" के साथ लकड़हारा स्तर त्रुटि या फ़ाइल के ऊपर के साथ संदेश लॉग करने के लिए कॉन्फ़िगर किया गया है। दो लकड़हारे अपने-अपने परिशिष्टों को संदेशों को लॉग करने के लिए एक दूसरे के स्थान पर उपयोग किए जा सकते हैं।
Npmlog का अनूठा मूल्य इसकी सादगी और न्यूनतम ओवरहेड में निहित है, जो इसे छोटे पैमाने या प्रदर्शन-संवेदनशील परियोजनाओं में उपयोग के लिए उपयुक्त बनाता है। एनपीएम पारिस्थितिकी तंत्र के साथ मूल रूप से कॉन्फ़िगर करना और एकीकृत करना आसान है (एनपीएम की आधिकारिक लॉगर उपयोगिता के बाद से आश्चर्यजनक), यह हल्के लॉगिंग समाधान की तलाश करने वाले डेवलपर्स के लिए एक लोकप्रिय विकल्प बनाता है। यहाँ कुछ कारण बताए गए हैं कि क्यों npmlog ने सूची बनाई:
Npmlog को स्थापित करने के लिए, आपको अपने मशीन पर Node.js और npm (नोड पैकेज मैनेजर) स्थापित करने की आवश्यकता है। उसके बाद, आप अपने टर्मिनल या कमांड प्रॉम्प्ट में निम्न आदेश चला सकते हैं:
npm install npmlog
यह npmlog और इसकी निर्भरता के नवीनतम संस्करण को डाउनलोड और इंस्टॉल करेगा, जिससे आप इसे अपने Node.js प्रोजेक्ट में उपयोग कर सकेंगे।
यहाँ कैसे एक Node.js परियोजना में npmlog का उपयोग करने का एक उदाहरण दिया गया है:
const log = require('npmlog'); log.level = 'verbose'; log.verbose('This is a verbose message'); log.info('This is an informational message'); log.warn('This is a warning'); log.error('This is an error');
इस उदाहरण में, हम npmlog
मॉड्यूल की आवश्यकता से शुरू करते हैं और इसे एक चर के लिए निर्दिष्ट करते हैं। फिर, हम लॉग स्तर को verbose
पर सेट करते हैं, जिसका अर्थ है कि verbose
, info
, warn
और error
के लॉग स्तर वाले संदेश प्रदर्शित किए जाएंगे। फिर हम verbose
, info
, warn
और error
विधियों का उपयोग करके विभिन्न स्तरों पर संदेशों को लॉग करते हैं।
ध्यान दें कि डिफ़ॉल्ट रूप से, npmlog process.stderr
को लिखता है। अगर आपको process.stdout
पर लिखना है, तो आप log.stream
प्रॉपर्टी का इस्तेमाल कर सकते हैं।
roarr लाइब्रेरी एक Node.js लॉगिंग टूल है जिसे आरंभीकरण की आवश्यकता के बिना संरचित डेटा का उत्पादन करने के लिए डिज़ाइन किया गया है। इसमें एक कमांड-लाइन इंटरफ़ेस (CLI) है और यह पर्यावरण चर का समर्थन करता है, जिससे यह बहुमुखी और उपयोग में आसान हो जाता है। इसके अतिरिक्त, रोरर Node.js और ब्राउज़र वातावरण दोनों के साथ संगत है, जो इसे अनुप्रयोगों की एक विस्तृत श्रृंखला के लिए एक बहुमुखी लॉगिंग समाधान बनाता है।
यहां कुछ प्रमुख बिंदु दिए गए हैं जो दहाड़ पुस्तकालय के अद्वितीय मूल्य को उजागर करते हैं:
सबसे पहले, एनपीएम का उपयोग करके दहाड़ स्थापित करें:
npm install roarr
इसके बाद, roarr को अपने कोड में इम्पोर्ट करें और एक लकड़हारा बनाएँ:
const Roarr = require('roarr').default; const logger = new Roarr({ context: { service: 'my-service' } });
लॉग संदेश log
विधि का उपयोग कर:
logger.info('Hello, world!');
डिफ़ॉल्ट रूप से, दहाड़ते लॉग कंसोल में आउटपुट होंगे। आप stream
विकल्प का उपयोग करके फ़ाइल जैसे किसी भिन्न स्ट्रीम को निर्दिष्ट करके लॉग आउटपुट को अनुकूलित कर सकते हैं:
const Roarr = require('roarr').default; const fs = require('fs'); const logger = new Roarr({ context: { service: 'my-service' }, stream: fs.createWriteStream('./my-service.log') });
यह कैसे दहाड़ का उपयोग करने का एक बुनियादी उदाहरण है। कई और विकल्प और सुविधाएँ उपलब्ध हैं, इसलिए अधिक जानकारी के लिए आधिकारिक दहाड़ दस्तावेज़ीकरण का संदर्भ लेना सुनिश्चित करें।
ट्रेसर Node.js अनुप्रयोगों के लिए एक ओपन-सोर्स लॉगिंग लाइब्रेरी है, जिसे Node.js समुदाय द्वारा विकसित किया गया है। यह Node.js अनुप्रयोगों में संदेशों और डिबगिंग जानकारी को लॉग करने के लिए एक कुशल और लचीला तरीका प्रदान करने के लिए डिज़ाइन किया गया है। अनुरेखक को स्वयंसेवकों की एक टीम द्वारा सक्रिय रूप से बनाए रखा और विकसित किया गया है और यह किसी के लिए भी उपलब्ध है जो जीथब पर उपयोग और योगदान कर सकता है। यहां कुछ विशेषताएं दी गई हैं जो इसे अद्वितीय लॉगिंग लाइब्रेरी बनाती हैं:
ट्रेसर को नोड पैकेज मैनेजर (एनपीएम) का उपयोग करके स्थापित किया जा सकता है। ट्रैसर को स्थापित करने के चरण यहां दिए गए हैं:
npm install tracer
यह ट्रैसर को आपके प्रोजेक्ट में एक निर्भरता के रूप में स्थापित करेगा। इसके बाद आप अपने कोड में इसकी आवश्यकता कर सकते हैं और संदेशों को लॉग करने के लिए इसका उपयोग करना शुरू कर सकते हैं।
अपने कोड में ट्रैसर का उपयोग करने का एक उदाहरण यहां दिया गया है:
const tracer = require('tracer'); const logger = tracer.console(); logger.info('Starting the application...');
इस उदाहरण में, हमें पहले ट्रैसर लाइब्रेरी की आवश्यकता होती है, फिर tracer.console()
विधि का उपयोग करके एक कंसोल लॉगर बनाएं। अंत में, हम लॉगर ऑब्जेक्ट पर info
विधि का उपयोग करके एक सूचनात्मक संदेश लॉग करते हैं।
ट्रैसर का उपयोग करने का एक और उदाहरण यहां दिया गया है:
const tracer = require('tracer'); const logger = tracer.dailyfile({root: './logs', maxLogFiles: 10}); logger.error('An error has occurred:', new Error('Something went wrong'));
इस उदाहरण में, हम एक फ़ाइल लकड़हारा बनाने के लिए tracer.dailyfile
विधि का उपयोग कर रहे हैं जो एक दैनिक घूमने वाली फ़ाइल में लॉग लिखता है। root
विकल्प उस निर्देशिका को निर्दिष्ट करता है जहां लॉग फ़ाइलें संग्रहीत की जाएंगी, और maxLogFiles
विकल्प लॉग फ़ाइलों की संख्या को सीमित करता है जिन्हें रखा जाएगा।
अंत में, हम लॉगर ऑब्जेक्ट पर error
मेथड का उपयोग करके एरर ऑब्जेक्ट के साथ एक एरर मैसेज लॉग करते हैं, जो हुई एरर के बारे में अधिक जानकारी प्रदान करता है।
इसका जीथब पृष्ठ "हैक करने योग्य और मूल रूप से कॉन्फ़िगर करने योग्य" होने का दावा करता है, और यह नोड.जेएस समुदाय में सिग्नल को ऐसी प्यारी लॉगिंग लाइब्रेरी बनाने का एक प्रमुख हिस्सा है। लाइब्रेरी को उन कठिनाइयों के समाधान के रूप में बनाया गया था जिनका सामना डेवलपर्स को Node.js अनुप्रयोगों में संदेशों को लॉग करने का प्रयास करते समय करना पड़ता है, जैसे अव्यवस्थित और पढ़ने में मुश्किल लॉग। यहाँ वह है जो इसे पैक से अलग करता है:
Signale को स्थापित करने के लिए, आप अपने टर्मिनल में निम्नलिखित कमांड चलाकर npm, Node.js पैकेज प्रबंधक का उपयोग कर सकते हैं:
npm install signale
वैकल्पिक रूप से, आप अपने टर्मिनल में निम्न आदेश चलाकर Signale को स्थापित करने के लिए यार्न का उपयोग भी कर सकते हैं:
yarn add signale
एक बार इंस्टॉल हो जाने के बाद, आप Signale को अपने Node.js एप्लिकेशन में इम्पोर्ट कर सकते हैं और संदेशों और डिबगिंग जानकारी को लॉग करने के लिए इसका उपयोग करना शुरू कर सकते हैं।
यहां आपके Node.js एप्लिकेशन में Signale को आयात करने और संदेशों को लॉग करने के लिए इसका उपयोग करने का एक उदाहरण दिया गया है:
const signale = require('signale'); // Log an info message signale.info('Starting up the server'); // Log a success message signale.success('Server started successfully'); // Log a warning message signale.warn('Low memory warning'); // Log an error message signale.error(new Error('An error occurred while processing data'));
इस उदाहरण में, हम require
फ़ंक्शन का उपयोग करके अपने Node.js एप्लिकेशन में Signale को आयात करते हैं। फिर, हम विभिन्न प्रकार के संदेशों को लॉग करने के लिए Signale द्वारा प्रदान की गई विभिन्न लॉगिंग विधियों, जैसे कि info
, success
, warn
और error
का उपयोग करते हैं। इन विधियों में से प्रत्येक का एक विशिष्ट प्रतीक और रंग है, जिससे लॉग संदेश के प्रकार को जल्दी से पहचानना आसान हो जाता है।
आप अतिरिक्त लॉगिंग विधियों और अनुकूलन विकल्पों सहित, Signale का उपयोग करने के तरीके के बारे में अधिक जानकारी Signale दस्तावेज़ीकरण में प्राप्त कर सकते हैं।
अपने Node.js एप्लिकेशन को डीबग करने के लिए एक तेज़ और कुशल विधि की तलाश में हैं? इस आलेख में उल्लिखित एक या अधिक पुस्तकालयों को देखें, उनमें से प्रत्येक एक बढ़िया विकल्प है। हालाँकि, पिनो हमारी पसंद की निजी लॉगिंग लाइब्रेरी है, जो 😉 लायक है
परीक्षण/विकास वातावरण और उत्पादन दोनों में Node.js अनुप्रयोगों को डीबग करते समय ये लॉगिंग लाइब्रेरी महत्वपूर्ण साबित हुई हैं।
साथ ही, उन्हें PlayerZero जैसे निगरानी समाधान के साथ एकीकृत करके, आप अपने Node.js अनुप्रयोगों के प्रदर्शन में और भी अधिक अंतर्दृष्टि प्राप्त कर सकते हैं।
यहाँ भी प्रकाशित हुआ।