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

आपके Node.js ऐप के लिए सर्वोत्तम अभ्यास लॉगिंग

2024-08-23 को प्रकाशित
ब्राउज़ करें:100

Logging Best Practices For Your Node.js App

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

अधिक जानने के लिए, आप संपूर्ण ब्लॉग पोस्ट देख सकते हैं।

1. विंस्टन: लॉगिंग का स्विस आर्मी चाकू

? उपकरण: विंस्टन
? विवरण: Node.js के लिए एक बहुमुखी लॉगिंग लाइब्रेरी
? प्रमुख विशेषताऐं:

  • एकाधिक परिवहन विकल्प (कंसोल, फ़ाइल, डेटाबेस)
  • अनुकूलन योग्य लॉग स्तर
  • विभिन्न प्रारूपों में लॉगिंग का समर्थन करता है (JSON, सादा पाठ)
javascriptCopyconst 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' })
  ]
});

2. मॉर्गन: HTTP रिक्वेस्ट लॉगर मिडलवेयर

? टूल: मॉर्गन
? विवरण: Express.js में HTTP अनुरोध लॉगिंग को सरल बनाता है
? प्रमुख विशेषताऐं:

  • पूर्व-परिभाषित लॉगिंग प्रारूप
  • कस्टम टोकन समर्थन
  • Express.js के साथ आसान एकीकरण
javascriptCopyconst express = require('express');
const morgan = require('morgan');

const app = express();
app.use(morgan('combined'));

3. बुनियन: Node.js के लिए JSON लॉगिंग

? उपकरण: बुन्यन
? विवरण: Node.js अनुप्रयोगों के लिए संरचित JSON लॉगिंग
? प्रमुख विशेषताऐं:

  • डिफ़ॉल्ट रूप से JSON लॉग प्रारूप
  • बाल लॉगर्स का समर्थन करता है
  • लॉग देखने के लिए अंतर्निहित सीएलआई
javascriptCopyconst bunyan = require('bunyan');
const log = bunyan.createLogger({name: "myapp"});

log.info("Hi");
log.warn({lang: 'fr'}, "Au revoir");

4. पिनो: सुपर फास्ट नोड.जेएस लॉगर

? उपकरण: पीनो
? विवरण: JSON आउटपुट के साथ कम ओवरहेड लॉगिंग
? प्रमुख विशेषताऐं:

  • बेहद तेज़ प्रदर्शन
  • स्वचालित लॉग रोटेशन
  • बाल लॉगर्स का समर्थन करता है
javascriptCopyconst pino = require('pino');
const logger = pino();

logger.info('hello world');
logger.error('this is at error level');

5. डिबग: टिनी डिबगिंग यूटिलिटी

? टूल: डिबग
? विवरण: Node.js के लिए छोटी डिबगिंग उपयोगिता
? प्रमुख विशेषताऐं:

  • हल्का और उपयोग में आसान
  • नामस्थानों के साथ चयनात्मक डिबगिंग
  • ब्राउज़र समर्थन
javascriptCopyconst debug = require('debug')('http');

debug('booting %o', name);

6. Log4js: जावास्क्रिप्ट के लिए लचीली लॉगिंग

? टूल: Log4js
? विवरण: log4j फ्रेमवर्क का JavaScript में रूपांतरण
? प्रमुख विशेषताऐं:

  • पदानुक्रमित लॉगिंग स्तर
  • एकाधिक आउटपुट परिशिष्ट
  • कॉन्फ़िगर करने योग्य लेआउट
javascriptCopyconst log4js = require("log4js");
log4js.configure({
  appenders: { cheese: { type: "file", filename: "cheese.log" } },
  categories: { default: { appenders: ["cheese"], level: "error" } }
});

const logger = log4js.getLogger("cheese");
logger.error("Cheese is too ripe!");

7. इलास्टिक्स खोज, लॉगस्टैश और किबाना (ईएलके स्टैक)

? टूल: ईएलके स्टैक
? विवरण: लॉग प्रबंधन और विश्लेषण के लिए एक शक्तिशाली संयोजन
? प्रमुख विशेषताऐं:

  • केंद्रीकृत लॉगिंग
  • वास्तविक समय लॉग विश्लेषण
  • विज़ुअलाइज़ेशन और डैशबोर्ड
javascriptCopyconst winston = require('winston');
const Elasticsearch = require('winston-elasticsearch');

const esTransportOpts = {
  level: 'info',
  clientOpts: { node: 'http://localhost:9200' }
};
const logger = winston.createLogger({
  transports: [
    new Elasticsearch(esTransportOpts)
  ]
});

8. संतरी: त्रुटि ट्रैकिंग और प्रदर्शन निगरानी

? उपकरण: संतरी
? विवरण: वास्तविक समय त्रुटि ट्रैकिंग और प्रदर्शन निगरानी
? प्रमुख विशेषताऐं:

  • स्वचालित त्रुटि कैप्चरिंग
  • रिलीज़ ट्रैकिंग
  • निष्पादन की निगरानी
javascriptCopyconst Sentry = require("@sentry/node");

Sentry.init({ dsn: "https://[email protected]/0" });

try {
  someFunction();
} catch (e) {
  Sentry.captureException(e);
}

9. नया अवशेष: अनुप्रयोग प्रदर्शन निगरानी

? उपकरण: नया अवशेष
? विवरण: व्यापक अनुप्रयोग प्रदर्शन निगरानी
? प्रमुख विशेषताऐं:

  • वास्तविक समय प्रदर्शन मेट्रिक्स
  • त्रुटि विश्लेषण
  • कस्टम इंस्ट्रुमेंटेशन
javascriptCopyconst newrelic = require('newrelic');

newrelic.setTransactionName('myCustomTransaction');
// Your application code here

10. लॉगगली: क्लाउड-आधारित लॉग प्रबंधन

? टूल: लॉगगली
? विवरण: क्लाउड-आधारित लॉग प्रबंधन और विश्लेषण सेवा
? प्रमुख विशेषताऐं:

  • केंद्रीकृत लॉग प्रबंधन
  • वास्तविक समय लॉग खोज और विश्लेषण
  • कस्टम डैशबोर्ड और अलर्ट
javascriptCopyconst winston = require('winston');
const { Loggly } = require('winston-loggly-bulk');

winston.add(new Loggly({
    token: "YOUR-TOKEN",
    subdomain: "YOUR-SUBDOMAIN",
    tags: ["Winston-NodeJS"],
    json: true
}));

winston.log('जानकारी', "Node.js से हैलो वर्ल्ड!");

बोनस टिप: संरचित लॉगिंग

आपके द्वारा चुने गए टूल के बावजूद, संरचित लॉगिंग को लागू करने से आपकी लॉग विश्लेषण क्षमताओं में काफी सुधार हो सकता है:

javascriptCopylogger.info({
  event: 'user_login',
  userId: user.id,
  timestamp: new Date().toISOString(),
  ipAddress: req.ip
});

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

यदि आपको अपने वेब ऐप को डीबग करने में सहायता की आवश्यकता है, तो आसान फ्रंटएंड मॉनिटरिंग के बारे में अधिक जानने के लिए https://alerty.ai देखें।

लॉगिंग की शुभकामनाएँ, और आपके Node.js ऐप्स सुचारू रूप से चलें! ??

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/alertyai/logging-best-practices-for-your-nodejs-app-4o9k?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3