TypeScript के लिए लॉगिंग: Winston लाइब्रेरी

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

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

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

Winston क्या है और इसकी आवश्यकता क्यों है?

Winston TypeScript और JavaScript में लॉगिंग के लिए एक लोकप्रिय लाइब्रेरी है। यह कई ट्रांसपोर्ट्स (कंसोल, फ़ाइल, डेटाबेस, HTTP में आउटपुट), लॉगिंग लेवल और मैसेज फ़ॉर्मेटिंग के समर्थन के साथ एक लचीली लॉग रिकॉर्डिंग प्रणाली प्रदान करता है। बड़े प्रोजेक्ट्स में, डिबगिंग, मॉनिटरिंग और उपयोगकर्ता या सिस्टम क्रियाओं के ऑडिट के लिए लॉगिंग महत्वपूर्ण है। Winston लॉग को संरचित करने, उन्हें महत्व के अनुसार फ़िल्टर करने और विश्लेषण के लिए सुविधाजनक प्रारूप में सहेजने की अनुमति देता है।

TypeScript में Winston कैसे स्थापित करें

स्थापित करने के लिए, टर्मिनल में कमांड चलाएँ:

npm install winston

TypeScript के लिए टाइप्स स्थापित करने की भी सिफारिश की जाती है:

npm install --save-dev @types/winston

Winston की मुख्य विशेषताएँ

  • लॉगिंग लेवल: error, warn, info, verbose, debug, silly (अनुकूलन योग्य)।
  • ट्रांसपोर्ट्स: Console, File, HTTP, MongoDB, Syslog और अन्य।
  • फ़ॉर्मेटिंग: JSON, सादा टेक्स्ट, टाइमस्टैम्प, रंग।
  • एसिंक्रोनस: मुख्य थ्रेड को ब्लॉक नहीं करता।
  • कस्टम प्रोफाइल: स्वयं के लेवल और ट्रांसपोर्ट्स बनाना।

TypeScript पर कोड उदाहरण

import winston from 'winston';

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

logger.info('एप्लिकेशन शुरू हुआ');logger.error('डेटाबेस से कनेक्शन में त्रुटि');

यह कोड एक लॉगर बनाता है जो info लेवल और उससे ऊपर के सभी संदेशों को कंसोल में लिखता है, त्रुटियों को error.log में, और सभी लॉग को combined.log में लिखता है।

Winston का उपयोग कब करें

Winston Node.js (Express, NestJS, Koa) पर किसी भी सर्वर-साइड एप्लिकेशन, माइक्रोसर्विसेज, CLI-उपयोगिताओं और जटिल स्क्रिप्ट्स के लिए उपयुक्त है। यह विशेष रूप से प्रोडक्शन वातावरण में उपयोगी है जहाँ केंद्रीकृत लॉग स्टोरेज, फ़ाइल रोटेशन और मॉनिटरिंग सिस्टम (ELK, Splunk) के साथ एकीकरण की आवश्यकता होती है। सरल प्रोजेक्ट्स के लिए, अंतर्निहित console.log का उपयोग किया जा सकता है, लेकिन Winston नियंत्रण और स्केलेबिलिटी प्रदान करता है।

अनुशंसाएँ