Introduction to dev-logger
In the fast-paced world of software development, efficient debugging and logging are crucial. Meet dev-logger — a powerful logging tool designed to simplify the debugging process and improve overall application performance.
In this article, we will delve into the various APIs provided by dev-logger, complete with code snippets for hands-on examples.
Getting Started
First, install the dev-logger
package:
npm install dev-logger
Basic Usage
Initialize and configure the logger in your project:
const devLogger = require('dev-logger'); const logger = devLogger.createLogger({ level: 'debug', format: devLogger.format.simple(), transports: [ new devLogger.transports.Console() ] });
Logging Levels
The dev-logger
allows you to use various logging levels:
logger.debug('This is a debug message'); logger.info('This is an info message'); logger.warn('This is a warning message'); logger.error('This is an error message');
Custom Transports
Set up custom log transports. For instance, logging to a file:
const fs = require('fs'); const path = require('path'); const fileTransport = new devLogger.transports.File({ filename: path.join(__dirname, 'logs', 'combined.log'), level: 'info' }); logger.add(fileTransport);
Formatting Logs
Customize the output format of log messages:
const { format, transports } = require('dev-logger'); const customLogger = devLogger.createLogger({ format: format.combine( format.colorize(), format.timestamp(), format.printf(({ timestamp, level, message }) => { return `${timestamp} [${level}]: ${message}`; }) ), transports: [ new transports.Console() ] });
Metadata and Error Handling
Include metadata and handle errors gracefully:
customLogger.info('This is an info message with metadata', { user: 'John Doe' }); try { throw new Error('Something went wrong!'); } catch (error) { customLogger.error('Caught an exception', { message: error.message }); }
Real-World Application Example
Integrate dev-logger
in a simple Node.js application:
const express = require('express'); const devLogger = require('dev-logger'); const app = express(); const logger = devLogger.createLogger({ level: 'info', format: devLogger.format.combine( devLogger.format.colorize(), devLogger.format.simple() ), transports: [ new devLogger.transports.Console() ] }); app.use((req, res, next) => { logger.info(`Incoming request: ${req.method} ${req.url}`); next(); }); app.get('/', (req, res) => { res.send('Hello World!'); logger.info('Handled request to root endpoint'); }); app.use((err, req, res, next) => { logger.error(`Error encountered: ${err.message}`); res.status(500).send('Internal Server Error'); }); app.listen(3000, () => { logger.info('Server is running on port 3000'); });
By implementing dev-logger, you can significantly enhance your debugging experience, making it easier to track, manage, and resolve issues efficiently.
Hash: d4cca1ba8dbb272a18db97e53aac22ceefeba0a33286e2406aa670f8dec772fa