"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > विंस्टन और मॉर्गन के साथ उन्नत Node.js एपीआई लॉगिंग

विंस्टन और मॉर्गन के साथ उन्नत Node.js एपीआई लॉगिंग

2024-07-31 को प्रकाशित
ब्राउज़ करें:291

Advanced Node.js API Logging with Winston and Morgan

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

उन्नत लॉगिंग की आवश्यकता क्यों है
उन्नत लॉगिंग कई कारणों से आवश्यक है:

  • डिबगिंग और समस्या निवारण: लॉग एप्लिकेशन घटनाओं का एक विस्तृत इतिहास प्रदान करते हैं, जो समस्याओं का निदान करते समय अमूल्य है। वे त्रुटियों के मूल कारण की पहचान करने और किसी समस्या की ओर ले जाने वाले कार्यों के अनुक्रम को समझने में मदद करते हैं।

  • निगरानी और रखरखाव: लॉग की निरंतर निगरानी डेवलपर्स को एप्लिकेशन के स्वास्थ्य और प्रदर्शन को ट्रैक करने की अनुमति देती है। लॉग का विश्लेषण करके, आप विसंगतियों, प्रदर्शन बाधाओं और संभावित मुद्दों का गंभीर होने से पहले पता लगा सकते हैं।

  • ऑडिटिंग और अनुपालन: कई अनुप्रयोगों के लिए, विशेष रूप से संवेदनशील डेटा को संभालने वाले अनुप्रयोगों के लिए, विस्तृत लॉग बनाए रखना एक अनुपालन आवश्यकता है। लॉग उपयोगकर्ता के कार्यों और सिस्टम परिवर्तनों का रिकॉर्ड प्रदान करते हैं, जो ऑडिट और नियामक अनुपालन के लिए महत्वपूर्ण हो सकते हैं।

  • सुरक्षा: सुरक्षा संबंधी घटनाओं को लॉग करना, जैसे विफल लॉगिन प्रयास, अनधिकृत पहुंच और संदिग्ध गतिविधियां, सुरक्षा खतरों का पता लगाने और उनका जवाब देने के लिए महत्वपूर्ण है। उन्नत लॉगिंग एक सुरक्षित एप्लिकेशन वातावरण बनाए रखने में मदद करती है।

विषयसूची

  1. विंस्टन और मॉर्गन का परिचय
  2. एक Node.js प्रोजेक्ट स्थापित करना
  3. विंस्टन और मॉर्गन को स्थापित करना
  4. उन्नत लॉगिंग के लिए विंस्टन को कॉन्फ़िगर करना
  5. HTTP अनुरोध लॉगिंग के लिए मॉर्गन को एकीकृत करना
  6. विंस्टन और मॉर्गन का संयोजन
  7. लॉगिंग प्रारूपों को अनुकूलित करना
  8. विभिन्न परिवहनों में लॉग इन करना
  9. त्रुटि प्रबंधन और लॉगिंग
  10. निष्कर्ष

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 अनुरोधों को लॉग करना सरल बनाता है। साथ में, वे आपको एक व्यापक लॉगिंग समाधान देते हैं जो आपके एप्लिकेशन की निगरानी और डीबग करने की आपकी क्षमता को बढ़ाता है।

अंतिम कोड अवलोकन
यहां फ़ाइलों और उनकी सामग्री का त्वरित सारांश दिया गया है:

  • logger.js: विंस्टन को कस्टम फ़ॉर्मेटिंग और ट्रांसपोर्ट के साथ कॉन्फ़िगर करता है।
  • middleware/logger.js: मॉर्गन को विंस्टन के साथ एकीकृत करता है।
  • app.js: विंस्टन और मॉर्गन दोनों को एकीकृत करते हुए एक्सप्रेस एप्लिकेशन सेट करता है। इस सेटअप के साथ, आप अपने Node.js API को प्रभावी ढंग से लॉग और मॉनिटर कर सकते हैं, जिससे इसे बनाए रखना और डीबग करना आसान हो जाता है।
विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/dev_habib_nuhu/advanced-nodejs-api-logging-with-winston-and-morgan-4fb1?1 यदि कोई उल्लंघन है, तो हटाने के लिए कृपया [email protected] पर संपर्क करें यह
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3