Node.js winston Module : Logging In Node.js

Other Blogs

Blogs ❯❯ NodeJS

Image could not load

Node.js winston Module

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 है।

NodeJS winston Module

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 है।

Features of winston module

  • 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 करता है।

Install winston module in NodeJS

Winston को Node.js project में install करने के लिए आपको npm package manager का use करना होगा , यह command run करें -

npm install winston

NodeJS winston logging examples

अब हम एक simple example देखेंगे कि कैसे Winston module को use करके logging setup करते हैं -

1. NodeJS basic winston configuration

सबसे पहले एक 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;

2. Logging Messages

अब आप 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');

NodejS winston Transports

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 करता है।

NodeJS winston custom log formats

आप 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');

NoedJS database logging using winston

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;

Logging Messages to MongoDB

अब आप अपने 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');

NodeJS winston module advantages

  • Flexibility : Winston module आपको अलग-अलग logging needs के लिए customize करने कि flexibility देता है।

  • Scalability : Large scale applications के लिए scalable logging solution provide करता है।

  • Integration : Easy integration के साथ other Node.js modules और services के साथ use किया जा सकता है।

Conclusion

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!

Recent Blogs

Loading ...

Hey ! I'm Rahul founder of learnhindituts.com. Working in IT industry more than 4.5 years. I love to talk about programming as well as writing technical tutorials and blogs that can help to others .... keep learning :)

Get connected with me - LinkedIn Twitter Instagram Facebook

Your Thought ?

Please wait . . .

    0 Comment(s) found !