JavaScript अनुप्रयोगों में लॉगिंग: सर्वोत्तम अभ्यास — भाग 3

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें
```html

JavaScript अनुप्रयोगों में लॉगिंग: सर्वोत्तम अभ्यास — भाग 3



लॉगिंग पर लेखों की इस श्रृंखला के अंतिम भाग में, हम उन्नत तकनीकों और टूल्स पर विचार करेंगे जो Node.js अनुप्रयोगों में एक विश्वसनीय मॉनिटरिंग सिस्टम बनाने में आपकी मदद करेंगे। यह सामग्री सीखने और व्यावहारिक उपयोग दोनों के लिए उपयोगी होगी — शुरुआती लोगों के लिए JavaScript से लेकर अनुभवी डेवलपर्स तक। हम संरचित लॉगिंग, लॉग रोटेशन, बाहरी सेवाओं के साथ एकीकरण और सुरक्षा पर चर्चा करेंगे।



1. Node.js में संरचित लॉगिंग



सामान्य console.log() प्रोडक्शन वातावरण के लिए उपयुक्त नहीं है। इसके बजाय, उन लाइब्रेरीज़ का उपयोग करें जो JSON लॉग उत्पन्न करती हैं। इससे उनका पार्सिंग और विश्लेषण सरल हो जाता है।



Winston लाइब्रेरी के साथ उदाहरण

const winston = require('winston');

const logger = winston.createLogger({ level: 'info', format: winston.format.json(), transports: [ new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }) ]});

// उपयोगlogger.info('उपयोगकर्ता पंजीकृत हुआ', { userId: 123, email: 'user@example.com' });logger.error('डेटाबेस त्रुटि', { error: err.message, stack: err.stack });


यह दृष्टिकोण आपको स्तर, समय और संदर्भ के अनुसार लॉग को आसानी से फ़िल्टर करने की अनुमति देता है। माइक्रोसर्विसेज के प्रोग्रामिंग में यह विशेष रूप से महत्वपूर्ण है।



2. लॉग रोटेशन और आकार प्रबंधन



लॉग जल्दी से डिस्क भर सकते हैं। रोटेशन का उपयोग करें — पुरानी फ़ाइलों का स्वचालित संग्रहण। Node.js में इसे winston-daily-rotate-file मॉड्यूल के साथ आसानी से कार्यान्वित किया जा सकता है।



रोटेशन सेटअप का उदाहरण

const DailyRotateFile = require('winston-daily-rotate-file');

const transport = new DailyRotateFile({ filename: 'logs/application-%DATE%.log', datePattern: 'YYYY-MM-DD', maxSize: '20m', maxFiles: '14d'});

const logger = winston.createLogger({ transports: [transport]});


यह सुनिश्चित करता है कि लॉग प्रति दिन 20 MB से अधिक न लें और 14 दिनों तक संग्रहीत रहें।



3. बाहरी मॉनिटरिंग सेवाओं के साथ एकीकरण



केंद्रीकृत लॉग संग्रह के लिए, Logstash, Datadog या Sentry जैसी सेवाओं का उपयोग करें। JavaScript में यह Winston ट्रांसपोर्ट के माध्यम से किया जाता है।



Logstash में लॉग भेजने का उदाहरण

const { LogstashTransport } = require('winston-logstash-transport');

const logger = winston.createLogger({ transports: [ new LogstashTransport({ host: 'logstash.example.com', port: 5000 }) ]});


इस तरह आप वास्तविक समय में लॉग का विश्लेषण कर सकते हैं, डैशबोर्ड और अलर्ट बना सकते हैं।



4. लॉगिंग सुरक्षा



संवेदनशील डेटा: पासवर्ड, टोकन, क्रेडिट कार्ड नंबर कभी लॉग न करें। फ़िल्टर या मास्किंग फ़ंक्शन का उपयोग करें।



डेटा मास्किंग का उदाहरण

function maskSensitive(obj) {  const masked = { ...obj };  if (masked.password) masked.password = '***';  if (masked.token) masked.token = '***';  return masked;}

logger.info('उपयोगकर्ता अनुरोध', maskSensitive(req.body));


यह आपको डेटा लीक से बचाएगा और GDPR का अनुपालन करने में मदद करेगा।



निष्कर्ष



इस भाग में, हमने Node.js पर JavaScript अनुप्रयोगों में लॉगिंग के प्रमुख अभ्यासों पर विचार किया: संरचित लॉग, रोटेशन, बाहरी प्रणालियों के साथ एकीकरण और सुरक्षा। ये तकनीकें आपको विश्वसनीय और रखरखाव में आसान सिस्टम बनाने में मदद करेंगी। सीखने के लिए, हम Winston से शुरुआत करने और धीरे-धीरे अधिक जटिल टूल्स को शामिल करने की सलाह देते हैं। शुरुआती लोगों के लिए JavaScript शुरू में कठिन लग सकता है, लेकिन अभ्यास आपको एक पेशेवर बना देगा। प्रोग्रामिंग में शुभकामनाएँ!

```

ब्लॉग

पुस्तक अनुशंसाएँ