0.0.2 • Published 9 months ago
@untools/logger v0.0.2
@untools/logger
A powerful and flexible logging utility for JavaScript and TypeScript applications that handles complex data types including DOM elements and circular references.
Features
- Handles DOM elements, circular references, and complex objects
- Color-coded console output
- Stack trace info for each log
- Works in both Node.js and browser environments
- Configurable logging levels
- Timestamp support
- Grouping and timing functionality
Installation
npm install @untools/loggerBasic Usage
import { logger } from '@untools/logger';
// Basic logging
logger.info('Server started on port 3000');
logger.warn('Deprecated function called');
logger.error(new Error('Something went wrong'));
logger.debug({ user: { id: 1, name: 'John' } });
// Logging DOM elements (browser only)
logger.info(document.getElementById('app'));
// Handling circular references
const circular = { name: 'circular object' };
circular.self = circular;
logger.info(circular);Custom Logger Configuration
import { Logger } from '@untools/logger';
const customLogger = new Logger({
showInProd: true,
includeTimestamp: true,
maxDepth: 3,
maxStringLength: 5000,
enableCircularHandling: true,
domElementFormat: 'inspect'
});
customLogger.info('Using custom logger configuration');API
LoggerOptions
| Option | Type | Default | Description |
|---|---|---|---|
| showInProd | boolean | false | Show logs in production environments |
| includeTimestamp | boolean | true | Include ISO timestamps in logs |
| maxDepth | number | 5 | Maximum recursion depth for object formatting |
| maxStringLength | number | 10000 | Maximum string length before truncation |
| enableCircularHandling | boolean | true | Enable detection and handling of circular references |
| domElementFormat | 'inspect' | 'summary' | 'disabled' | 'summary' | Format for DOM elements |
Methods
log(...args): General loggingdebug(...args): Debug level logginginfo(...args): Information level loggingwarn(...args): Warning level loggingerror(...args): Error level logginggroup(label): Start a collapsible group in consolegroupEnd(): End the current grouptime(label): Start a timertimeEnd(label): End timer and log elapsed time
License
MIT