UNPKG

consoletext

Version:

Enhanced console logging with remote capabilities

187 lines (131 loc) 4.16 kB
# ConsoleText Enhanced console logging with colorization and remote capabilities for Node.js applications. ## Features - 🎨 **Colorized Console Output**: Improve readability with color-coded log levels - 🌐 **Remote Logging**: Send selected logs to a remote server endpoint - 🔄 **Preserve Original Console**: Easily restore original console behavior - 🛠️ **Configurable**: Customize behavior with simple options - 📝 **Custom Log Method**: Special `console.text()` method for remote logging ## Installation ```bash npm install consoletext ``` ## Quick Start ```javascript const { createConsoleText } = require('consoletext'); // Initialize with default options const ConsoleText = createConsoleText(); // Use enhanced console methods console.log('Regular log message'); console.info('Info message in blue'); console.warn('Warning message in yellow'); console.error('Error message in red'); console.debug('Debug message in green'); // Use custom text method (for remote logging) console.text('This can be sent to a remote server if configured'); // When done, restore original console behavior ConsoleText.restore(); ``` ## Configuration ```javascript const { createConsoleText } = require('consoletext'); const ConsoleText = createConsoleText({ // API key for authentication (optional) apiKey: 'your-api-key', // Enable/disable colorization (default: true) colorize: true, // Enable/disable console output (default: false) silent: false }); ``` ## Using with React ### Basic Setup ```javascript // src/logger.js import { createConsoleText } from 'consoletext'; export const logger = createConsoleText({ apiKey: process.env.REACT_APP_LOGGING_API_KEY }); ``` ```javascript // src/index.js or App.js import { logger } from './logger'; // Initialize logger early in your app logger.init(); // Use in your components function App() { useEffect(() => { console.info('App mounted'); console.text('This will be sent to the server'); // Cleanup on unmount return () => logger.restore(); }, []); return <div>Your App</div>; } ``` ### Custom Hook ```javascript // src/hooks/useLogger.js import { useEffect } from 'react'; import { createConsoleText } from 'consoleText'; export function useLogger(config = {}) { useEffect(() => { const logger = createConsoleText(config); logger.init(); return () => logger.restore(); }, []); } // Usage in component function MyComponent() { useLogger({ colorize: true }); return <div>Component with logging</div>; } ``` ## Remote Logging Only the `console.text()` method sends logs to the remote server. Other console methods are enhanced but only output locally. ```javascript // Configure with remote endpoint const ConsoleText = createConsoleText({ apiKey: 'your-api-key' }); // This will be sent to the remote server console.text('Important information to log remotely'); // These will only appear in the local console console.log('Local log message'); console.info('Local info message'); ``` ## Advanced Usage ### Manual Initialization ```javascript const { ConsoleText } = require('consoleText'); // Create instance without auto-initialization const logger = new ConsoleText({ colorize: true, }); // Initialize when ready logger.init(); // Use enhanced console console.log('Console is now enhanced'); // Restore when done logger.restore(); ``` ## API Reference ### `createConsoleText(config)` Creates and initializes a new ConsoleText instance. - `config` (Object): Configuration options - `endpoint` (String): URL for remote logging - `apiKey` (String): Authentication key for remote endpoint - `colorize` (Boolean): Whether to colorize console output (default: true) - `silent` (Boolean): Whether to suppress console output (default: false) Returns an initialized ConsoleText instance. ### `ConsoleText` Class that provides console enhancement functionality. #### Methods - `init()`: Overrides console methods with enhanced versions - `restore()`: Restores original console behavior ## Examples See the [examples](./examples) directory for more usage examples. ## License MIT