If tutorials available on this website are helpful for you, please whitelist this website in your ad blocker😭 or Donate to help us ❤️ pay for the web hosting to keep the website running.
Node.js एक powerful platform है जो server-side applications बनाने के लिए use होता है। Application development में logging एक important aspect है जो आपको application behavior track करने और troubleshoot करने में help करता है।
इस blog में, हम winston
module के बारे में detail में समझेंगे , जो Node.js applications में logging के लिए एक popular library है।
Winston एक versatile logging library है जो आपको different log levels manage करने, custom log formats create करने, और multiple transports (जैसे कि console, file, HTTP) पर logs को store करने कि facility देता है।
यह आपको structured और customizable logging provide करता है, जो debugging और monitoring के लिए useful है।
Multiple Transports : अलग-अलग destinations पर logs save कर सकते हैं जैसे कि console, file, HTTP, etc.
Custom Formats : आप log messages का format customize कर सकते हैं।
Log Levels : Different severity levels के logs manage कर सकते हैं जैसे कि error, warn, info, etc.
Asynchronous Logging : Performance improve करने के लिए asynchronous logging support करता है।
●●●
Winston को Node.js project में install करने के लिए आपको npm package manager
का use करना होगा , यह command run करें -
npm install winston
अब हम एक simple example देखेंगे कि कैसे Winston module को use करके logging setup करते हैं -
सबसे पहले एक logger.js
file बनाये और basic Winston configuration set up करें -
const winston = require('winston');
// Logger configuration
const logger = winston.createLogger({
level: 'info', // Minimum log level
format: winston.format.combine(
winston.format.timestamp({
format: 'YYYY-MM-DD HH:mm:ss'
}),
winston.format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
),
transports: [
new winston.transports.Console(), // Log to console
new winston.transports.File({ filename: 'logs/app.log' }) // Log to file
]
});
module.exports = logger;
अब आप logger को use करके messages log कर सकते हैं। इस example में, हम different log levels का use करेंगे -
const logger = require('./logger');
// Log different levels.
logger.error('This is an error message');
logger.warn('This is a warning message');
logger.info('This is an info message');
logger.verbose('This is a verbose message');
logger.debug('This is a debug message');
logger.silly('This is a silly message');
●●●
Winston module में transports का concept है जो अलग-अलग destinations पर logs को store करने के लिए use होता है। Winston multiple built-इन transports provide करता है, जैसे कि -
Console Transport : Console पे logs print करता है।
File Transport : Logs को file में save करता है।
HTTP Transport : Logs को HTTP endpoint पे send करता है।
●●●
आप Winston में अपने custom log formats create कर सकते हैं ताकि logs को readable और useful बनाया जा सके। इस example में हम json
format का use करेंगे -
const winston = require('winston');
// Custom JSON format
const jsonFormat = winston.format.combine(
winston.format.timestamp(),
winston.format.json()
);
// Logger with JSON format
const jsonLogger = winston.createLogger({
level: 'info',
format: jsonFormat,
transports: [
new winston.transports.Console(),
new winston.transports.File({ filename: 'logs/json-app.log' })
]
});
// Logging with JSON format
jsonLogger.info('Logging in JSON format');
●●●
Database logging के साथ Winston module का use करना एक powerful approach है जो आपको application logs को structured और searchable form में store करने कि सुविधा देता है।
Winston को database के साथ integrate करने के लिए आपको एक additional transport module कि need होती है, जैसे कि winston-mongodb
या winston-mysql
.
इस example में, हम winston-mongodb
transport का use करके MongoDB database में logging करेंगे।
npm install winston-mongodb
logger.js
const winston = require('winston');
require('winston-mongodb');
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
transports: [
new winston.transports.Console(),
new winston.transports.MongoDB({
level: 'info',
db: 'mongodb://localhost:27017/logs', // MongoDB connection string
options: { useUnifiedTopology: true },
collection: 'app_logs', // Collection name
tryReconnect: true
})
]
});
module.exports = logger;
अब आप अपने application में logger को import
करके messages log कर सकते हैं -
const logger = require('./logger');
// Log different levels.
logger.error('Database logging: This is an error message');
logger.warn('Database logging: This is a warning message');
logger.info('Database logging: This is an info message');
●●●
Flexibility : Winston module आपको अलग-अलग logging needs के लिए customize करने कि flexibility देता है।
Scalability : Large scale applications के लिए scalable logging solution provide करता है।
Integration : Easy integration के साथ other Node.js modules और services के साथ use किया जा सकता है।
Winston module एक powerful logging tool है जो Node.js applications के लिए comprehensive logging solution provide करता है। इस guide के through, आप Winston module को install, configure और use करना सीख चुके हैं। इस module के features को आप अपने applications में implement करके error tracking और debugging को improve कर सकते हैं।
आप इस example को further enhance कर सकते हैं जैसे कि custom log levels, dynamic log configuration, और remote log monitoring services को integrate करना।
Happy logging with Node.js and Winston!
●●●
Loading ...