@10abdullahbutt/logger
v1.0.0
Published
A powerful, extensible logger utility for Node.js and TypeScript projects with colored output and Winston-like features
Maintainers
Readme
@10abdullahbutt/logger
A powerful, extensible logger utility for Node.js and TypeScript projects with colored output, Winston-like features, and multiple transport support.
Features
- 🎨 Colored Output: Beautiful colored console output using chalk
- 📝 Multiple Formats: Simple, detailed, and JSON formatting options
- 🚀 Winston-like API: Familiar interface with transports and levels
- ⚙️ Configurable: Customizable log levels, prefixes, and metadata
- 📁 File Transport: Built-in file logging support
- 🔧 Extensible: Easy to add custom transports
Installation
npm install @10abdullahbutt/loggerBasic Usage
import { logger, Logger } from '@10abdullahbutt/logger';
// Simple logging
logger.info('Hello, world!');
logger.error('Something went wrong!');
// With metadata
logger.info('User logged in', { userId: 123, timestamp: new Date() });Advanced Usage
Custom Logger Configuration
import { Logger, Logger.createFileTransport } from '@10abdullahbutt/logger';
const customLogger = new Logger({
level: 'debug',
prefix: 'MyApp',
colorize: true,
format: 'detailed',
timestamp: true
});
// Add file transport
const fileTransport = Logger.createFileTransport('./logs/app.log', 'info');
customLogger.addTransport(fileTransport);
customLogger.debug('Debug message');
customLogger.warn('Warning!');Pre-configured Loggers
import { debugLogger, productionLogger, developmentLogger } from '@10abdullahbutt/logger';
// Development logger with full debug output
developmentLogger.verbose('Detailed debug info');
// Production logger with JSON format
productionLogger.warn('Production warning');Custom Transports
import { Logger } from '@10abdullahbutt/logger';
// Custom transport for external logging service
const customTransport = Logger.createCustomTransport((message) => {
// Send to external service
console.log('External:', message);
}, 'error');
const logger = new Logger();
logger.addTransport(customTransport);API Reference
Logger Options
interface LoggerOptions {
level?: 'debug' | 'info' | 'warn' | 'error' | 'log';
prefix?: string;
transports?: Transport[];
timestamp?: boolean;
colorize?: boolean;
format?: 'simple' | 'detailed' | 'json';
}Methods
debug(message, metadata?)- Debug level logginginfo(message, metadata?)- Info level logginglogMessage(message, metadata?)- General loggingwarn(message, metadata?)- Warning level loggingerror(message, metadata?)- Error level loggingsuccess(message, metadata?)- Success logging (alias for log)verbose(message, metadata?)- Verbose logging (alias for debug)
Winston-like Methods
addTransport(transport)- Add a new transportremoveTransport(transport)- Remove a transportsetLevel(level)- Change log level dynamically
Static Methods
Logger.createFileTransport(filePath, level?)- Create file transportLogger.createCustomTransport(writeFn, level?)- Create custom transport
Examples
Different Format Styles
// Simple format (default)
const simpleLogger = new Logger({ format: 'simple' });
// Detailed format
const detailedLogger = new Logger({ format: 'detailed' });
// JSON format for machine parsing
const jsonLogger = new Logger({ format: 'json' });Environment-based Configuration
const logger = new Logger({
level: process.env.NODE_ENV === 'production' ? 'warn' : 'debug',
colorize: process.env.NODE_ENV !== 'production',
format: process.env.NODE_ENV === 'production' ? 'json' : 'detailed'
});License
MIT
