Introduction to logr
logr
is a modern and efficient logging library designed to help developers manage application logs seamlessly. Its diverse set of APIs provides powerful features and customization options, making logs more useful and informative. Let’s explore the various APIs offered by logr
with examples and build a sample application to demonstrate its capabilities.
Getting Started
First, we need to install the logr
library.
npm install logr
Basic Usage
To use logr
, you need to import and configure it in your project.
const logr = require('logr');
const logger = logr.createLogger({ level: 'info' });
logger.info('This is an info message');
logger.error('This is an error message');
Log Levels
logr
supports various log levels including debug, info, warn, and error.
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 Loggers
Create customized loggers that behave differently based on your needs.
const customLogger = logr.createLogger({ level: 'debug', format: 'json' });
customLogger.debug('Custom logger with JSON format');
Log Formatting
Format logs to include timestamps, labels, or custom formats.
const formatLogger = logr.createLogger({
level: 'info',
format: logr.format.combine(
logr.format.timestamp(),
logr.format.label({ label: 'myApp' }),
logr.format.simple()
)
});
formatLogger.info('This log has a custom format');
File Logging
Log messages can be written to files for persistent storage.
const fileLogger = logr.createLogger({
level: 'info',
transports: [
new logr.transports.File({ filename: 'application.log' })
]
});
fileLogger.info('This message will be logged to a file');
Console Logging
Log messages can also be output to the console.
const consoleLogger = logr.createLogger({
level: 'debug',
transports: [
new logr.transports.Console()
]
});
consoleLogger.debug('This message will appear in the console');
Example Application
Let’s create a sample application that uses various logr
features.
const logr = require('logr');
// Configure loggers
const mainLogger = logr.createLogger({level: 'info'});
const errorLogger = logr.createLogger({level: 'error', transports: [new logr.transports.File({filename: 'errors.log'})]});
function processUser(user) {
mainLogger.info(`Processing user: ${user.name}`);
if (!user.active) {
errorLogger.error(`Inactive user: ${user.name}`);
} else {
mainLogger.info(`User ${user.name} is active`);
}
}
// Simulate user processing
const users = [{name: 'John', active: true}, {name: 'Jane', active: false}];
users.forEach(processUser);
This application processes a list of users and logs messages based on their status. It demonstrates how different loggers can be used to handle various scenarios.
Hash: 0a5d7df8f0878c77b373ee198d8099d4bdaf96fe2d4d1ee5d2eb4fc00bedd77a