लॉगिंग किसी भी एप्लिकेशन का एक महत्वपूर्ण हिस्सा है, जो एप्लिकेशन के व्यवहार में अंतर्दृष्टि प्रदान करता है, डीबग मुद्दों में मदद करता है और प्रदर्शन की निगरानी करता है। Node.js API में, विंस्टन और मॉर्गन जैसी लाइब्रेरी का उपयोग करके उन्नत लॉगिंग प्राप्त की जा सकती है। यह आलेख आपको Node.js API में उन्नत लॉगिंग के लिए विंस्टन और मॉर्गन की स्थापना और उपयोग करने में मार्गदर्शन करेगा।
उन्नत लॉगिंग की आवश्यकता क्यों है
उन्नत लॉगिंग कई कारणों से आवश्यक है:
डिबगिंग और समस्या निवारण: लॉग एप्लिकेशन घटनाओं का एक विस्तृत इतिहास प्रदान करते हैं, जो समस्याओं का निदान करते समय अमूल्य है। वे त्रुटियों के मूल कारण की पहचान करने और किसी समस्या की ओर ले जाने वाले कार्यों के अनुक्रम को समझने में मदद करते हैं।
निगरानी और रखरखाव: लॉग की निरंतर निगरानी डेवलपर्स को एप्लिकेशन के स्वास्थ्य और प्रदर्शन को ट्रैक करने की अनुमति देती है। लॉग का विश्लेषण करके, आप विसंगतियों, प्रदर्शन बाधाओं और संभावित मुद्दों का गंभीर होने से पहले पता लगा सकते हैं।
ऑडिटिंग और अनुपालन: कई अनुप्रयोगों के लिए, विशेष रूप से संवेदनशील डेटा को संभालने वाले अनुप्रयोगों के लिए, विस्तृत लॉग बनाए रखना एक अनुपालन आवश्यकता है। लॉग उपयोगकर्ता के कार्यों और सिस्टम परिवर्तनों का रिकॉर्ड प्रदान करते हैं, जो ऑडिट और नियामक अनुपालन के लिए महत्वपूर्ण हो सकते हैं।
सुरक्षा: सुरक्षा संबंधी घटनाओं को लॉग करना, जैसे विफल लॉगिन प्रयास, अनधिकृत पहुंच और संदिग्ध गतिविधियां, सुरक्षा खतरों का पता लगाने और उनका जवाब देने के लिए महत्वपूर्ण है। उन्नत लॉगिंग एक सुरक्षित एप्लिकेशन वातावरण बनाए रखने में मदद करती है।
विषयसूची
1.विंस्टन और मॉर्गन का परिचय
विंस्टन Node.js के लिए एक बहुमुखी और उपयोग में आसान लॉगिंग लाइब्रेरी है। यह लॉग संदेशों के लिए एकाधिक ट्रांसपोर्ट का समर्थन करता है, जिसका अर्थ है कि आप विभिन्न प्रारूपों और स्तरों के साथ विभिन्न स्थानों (कंसोल, फ़ाइलें, रिमोट सर्वर इत्यादि) पर लॉग इन कर सकते हैं।
मॉर्गन Node.js के लिए एक HTTP अनुरोध लॉगर मिडलवेयर है। यह पूर्वनिर्धारित प्रारूप में HTTP अनुरोधों को लॉग करना सरल बनाता है, जो एपीआई में आने वाले अनुरोधों और प्रतिक्रियाओं को ट्रैक करने के लिए बहुत उपयोगी हो सकता है।
2.एक Node.js प्रोजेक्ट स्थापित करना
यदि आपके पास पहले से कोई Node.js प्रोजेक्ट नहीं है, तो सबसे पहले एक नया Node.js प्रोजेक्ट बनाएं:
mkdir node-api-logging cd node-api-logging npm init -y
3.विंस्टन और मॉर्गन स्थापित करना
एक्सप्रेस के साथ विंस्टन और मॉर्गन स्थापित करें (बुनियादी एपीआई स्थापित करने के लिए):
npm install express winston morgan
4.उन्नत लॉगिंग के लिए विंस्टन को कॉन्फ़िगर करना
विंस्टन को कॉन्फ़िगर करने के लिए एक logger.js फ़ाइल बनाएं:
// logger.js const { createLogger, format, transports } = require('winston'); const { combine, timestamp, printf, errors } = format; const customFormat = printf(({ level, message, timestamp, stack }) => { return `${timestamp} ${level}: ${stack || message}`; }); const logger = createLogger({ level: 'info', format: combine( timestamp(), errors({ stack: true }), customFormat ), transports: [ new transports.Console(), new transports.File({ filename: 'logs/error.log', level: 'error' }), new transports.File({ filename: 'logs/combined.log' }) ] }); module.exports = logger;
5.HTTP अनुरोध लॉगिंग के लिए मॉर्गन को एकीकृत करना
मॉर्गन को विंस्टन के साथ एकीकृत करने के लिए एक मिडलवेयर/लॉगर.जेएस फ़ाइल बनाएं:
// middleware/logger.js const morgan = require('morgan'); const logger = require('../logger'); const stream = { write: (message) => logger.info(message.trim()) }; const morganMiddleware = morgan('combined', { stream }); module.exports = morganMiddleware;
6.विंस्टन और मॉर्गन का संयोजन
विंस्टन और मॉर्गन दोनों को अपने एक्सप्रेस एप्लिकेशन में एकीकृत करें:
// app.js const express = require('express'); const logger = require('./logger'); const morganMiddleware = require('./middleware/logger'); const app = express(); // Use Morgan middleware for HTTP request logging app.use(morganMiddleware); // Example route app.get('/', (req, res) => { logger.info('Hello world endpoint was called'); res.send('Hello, world!'); }); // Error handling middleware app.use((err, req, res, next) => { logger.error(err.message, { stack: err.stack }); res.status(500).send('Something went wrong!'); }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { logger.info(`Server is running on port ${PORT}`); });
7.लॉगिंग प्रारूपों को अनुकूलित करना
आप विंस्टन और मॉर्गन में लॉगिंग प्रारूपों को अनुकूलित कर सकते हैं। उदाहरण के लिए, आप हेडर, क्वेरी पैरामीटर या प्रतिक्रिया समय जैसे अतिरिक्त अनुरोध विवरण लॉग करना चाह सकते हैं।
8.विभिन्न परिवहनों में प्रवेश
विंस्टन विभिन्न परिवहनों का समर्थन करता है। आप संदेशों की गंभीरता के आधार पर विभिन्न गंतव्यों पर लॉग इन कर सकते हैं। उदाहरण के लिए, हो सकता है कि आप किसी दूरस्थ लॉगिंग सर्वर या लॉगगली या पेपरट्रेल जैसी तृतीय-पक्ष सेवा को त्रुटि लॉग भेजना चाहें।
9.त्रुटि प्रबंधन और लॉगिंग
समस्याओं की पहचान और समाधान के लिए उचित त्रुटि प्रबंधन और लॉगिंग आवश्यक है। सुनिश्चित करें कि आपकी त्रुटि प्रबंधन मिडलवेयर विंस्टन का उपयोग करके विस्तृत त्रुटि जानकारी लॉग करती है।
10.निष्कर्ष
विंस्टन और मॉर्गन को मिलाकर, आप अपने Node.js API में उन्नत लॉगिंग प्राप्त कर सकते हैं। विंस्टन एप्लिकेशन-स्तरीय ईवेंट लॉगिंग के लिए एक मजबूत ढांचा प्रदान करता है, जबकि मॉर्गन HTTP अनुरोधों को लॉग करना सरल बनाता है। साथ में, वे आपको एक व्यापक लॉगिंग समाधान देते हैं जो आपके एप्लिकेशन की निगरानी और डीबग करने की आपकी क्षमता को बढ़ाता है।
अंतिम कोड अवलोकन
यहां फ़ाइलों और उनकी सामग्री का त्वरित सारांश दिया गया है:
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3