@untools/logger
Version:
An enhanced logger for JavaScript/TypeScript that handles DOM elements and circular references
86 lines (64 loc) • 2.36 kB
Markdown
A powerful and flexible logging utility for JavaScript and TypeScript applications that handles complex data types including DOM elements and circular references.
- 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
```bash
npm install @untools/logger
```
```javascript
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);
```
```javascript
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');
```
| 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 |
- `log(...args)`: General logging
- `debug(...args)`: Debug level logging
- `info(...args)`: Information level logging
- `warn(...args)`: Warning level logging
- `error(...args)`: Error level logging
- `group(label)`: Start a collapsible group in console
- `groupEnd()`: End the current group
- `time(label)`: Start a timer
- `timeEnd(label)`: End timer and log elapsed time
MIT