UNPKG

@nxtwebmasters/nxt-smart-logger

Version:

A configurable smart logger for web apps that supports server and Google Tag Manager (GTM) logging with user/session context.

131 lines (96 loc) 2.69 kB
# 🚀 NXT Smart Logger — Examples & Usage This guide shows how to leverage `@nxtwebmasters/nxt-smart-logger` in real-world scenarios. Copy/paste any snippet into your app or browser console. --- ## ✅ Minimal Setup ```ts import { ConsoleInterceptor } from '@nxtwebmasters/nxt-smart-logger'; const interceptor = new ConsoleInterceptor(); console.log('Basic usage ready'); ``` --- ## 📦 Full Setup with Context & Server Logging ```ts const interceptor = new ConsoleInterceptor({ batchSize: 10, flushInterval: 4000, filterLevels: ['error', 'warn'], contextProvider: () => ({ userId: 'USER42', env: 'production', }), serverLogger: async (logs) => { await fetch('/api/logs', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(logs), }); }, }); ``` --- ## 🔧 Logging with Tags, Meta, and Extra Context ```ts const logger = interceptor.getLogger(); logger.info('Simple log'); logger.withTags(['checkout']).warn('Payment gateway slow'); logger.withContext({ feature: 'profile' }).error('Profile fetch failed'); logger.withMeta({ region: 'us-west' }).debug('Geo split test'); logger.withAll({ tags: ['auth'], context: { step: 'login' }, meta: { version: 'v3' }, }).warn('Multi-setup login warning'); ``` --- ## 🧠 Best Practice: Set Common Context Once ```ts interceptor.setContext({ appVersion: '1.3.0', sessionId: 'sess-7890' }); logger.info('Shared context across all logs'); ``` --- ## 🔍 DevTool / Console CLI Usage Run these directly in your browser console: ### Preview current queue ```js interceptor.logQueue ``` ### Manually flush now ```js interceptor.flushLogs() ``` ### Clear persistent context ```js interceptor.clearContext() ``` ### Clear persistent tags ```js interceptor.clearTags() ``` --- ## 📊 Tip: Log Format Expectations Each log is structured and may look like: ```json { "level": "info", "message": "User created {\"id\":42}", "tags": ["user"], "timestamp": "2025-05-31T13:00:00Z", "context": { "userId": "USER42", "appVersion": "1.3.0" }, "meta": { "url": "https://yourapp.com/page", "userAgent": "Mozilla/5.0", "sessionId": "sess-7890", "traceId": "uuid-1234" }, "data": { "id": 42 } } ``` --- ## 🔗 Links * GitHub: [https://github.com/nxtwebmasters/nxt-smart-logger](https://github.com/nxtwebmasters/nxt-smart-logger) * NPM: [https://www.npmjs.com/package/@nxtwebmasters/nxt-smart-logger](https://www.npmjs.com/package/@nxtwebmasters/nxt-smart-logger)