विवरण
लॉगिंग किसी भी एप्लिकेशन में एक बहुत ही आवश्यक हिस्सा है चाहे वह Node.js में बना हो या किसी अन्य प्रोग्रामिंग भाषा में। लॉगिंग हमें एप्लिकेशन के अजीब व्यवहार के साथ-साथ वास्तविक समय की त्रुटियों और अपवादों का पता लगाने में मदद करता है। किसी को निश्चित रूप से अपने एप्लिकेशन में तार्किक लॉग डालने चाहिए। ये लॉग उपयोगकर्ता को किसी भी गलती की पहचान करने और तत्काल आधार पर इसे हल करने में मदद करते हैं।
वर्तमान में उपयोगकर्ता के पास 5 अलग-अलग लॉग स्तर मौजूद हैं। इन लॉग स्तरों का उपयोग विभिन्न प्रकार के लॉग को परिभाषित करने के लिए किया जाता है और उपयोगकर्ता को विभिन्न परिदृश्यों की पहचान करने में मदद करता है। इन लॉग से सर्वोत्तम लाभ प्राप्त करने के लिए लॉग स्तरों को सावधानीपूर्वक कॉन्फ़िगर किया जाना चाहिए:
error
warn
info
verbose
debug
मिडलवेयर
आप इस मिडलवेयर को अनुरोध पाइपलाइन में डाल सकते हैं ताकि आप सीधे लॉग प्रिंट करने के लिए डिबग मॉड्यूल की शक्ति का उपयोग कर सकें। डिबग मॉड्यूल का सबसे अच्छा लाभ यह है कि लगभग सभी मॉड्यूल लॉग प्रिंट करने के लिए डिबग का उपयोग करते हैं। आप लॉग और त्रुटियों को प्रिंट करने के लिए डिबग मॉड्यूल का उपयोग कर सकते हैं।
यह मिडलवेयर मुख्य रूप से एक मध्य पाइपलाइन के रूप में कार्य करने के लिए उपयोग किया जाता है - आप इस पाइपलाइन में लॉग पास कर सकते हैं जिसे लॉग फ़ाइल में प्रिंट किया जाएगा। अनुरोध और प्रतिक्रियाएं भी लॉगिंग उद्देश्यों के लिए इस मिडलवेयर के माध्यम से पास की जाती हैं। यह एक एक्सप्रेस ऐप में बहुत फायदेमंद है। मिडलवेयर सेट करना आसान है और किसी भी फ्रेमवर्क में किया जा सकता है।
मिडलवेयर के लिए फ़ाइलें कॉन्फ़िगर करना
एप्लिकेशन
const app = express() const logMiddleware = require('my-logging-middleware') app.use(logMiddleware)राउटर
const router = express.Router() const routeLoggingMiddleware = require('my-route-logging-middleware') router.use(routeLoggingMiddleware)त्रुटियां
const app = express(); const errorLoggingMiddleware = require('my-error-logging-middleware') app.use(errorLoggingMiddleware)Winston पैकेज
आप लॉगिंग उद्देश्यों के लिए winston पैकेज का भी उपयोग कर सकते हैं। यह विभिन्न लॉग स्तर, क्वेरीज़ के साथ-साथ एक प्रोफाइलर भी प्रदान करता है।
एप्लिकेशन
const app = express() const winstonPackage = require('winston') const consoleTransport = new winstonPackage.transports.Console() const myWinstonOptions = { transports: [consoleTransport] } const logger = new winstonPackage.createLogger(myWinstonOptions) function logRequest(req, res, next) { logger.info(req.url) next() } app.use(logRequest) function logError(err, req, res, next) { logger.error(err) next() } app.use(logError)