@xyz/logger
v1.0.0
Published
Production-grade structured logger with JSON output, context support, and log levels
Maintainers
Readme
xyz-logger
Production-grade structured logger built on consola.
Features
- 📝 Structured JSON output in production
- 🎨 Pretty console output in development
- 🏷️ Context support (request ID, user ID, organization ID)
- 📊 Log levels: debug, info, warn, error, fatal
- 🔐 Built-in auth, org, and database logging helpers
Installation
npm install xyz-loggerUsage
Basic Logging
import { logger, log } from 'xyz-logger'
// Using the base logger
logger.info('Hello world')
logger.error('Something went wrong', { code: 500 })
// Using convenience methods
log.info('User action', { userId: '123' })
log.debug('Debug info', { details: 'here' })Context-Scoped Logger
Create a logger that includes context in every log message:
import { createContextLogger } from 'xyz-logger'
const log = createContextLogger({
requestId: 'abc-123',
userId: 'user-456'
})
log.info('Processing request') // Includes requestId and userId
log.error('Failed to process') // Same context attachedRequest Logger
Create a logger for API routes that automatically extracts request context:
import { createRequestLogger } from 'xyz-logger'
export default defineEventHandler((event) => {
const log = createRequestLogger(event)
log.info('Handling request')
// ...
})Domain-Specific Logging
Built-in helpers for common logging patterns:
import { log } from 'xyz-logger'
// Auth events
log.auth.login('user-123', 'google')
log.auth.logout('user-123')
log.auth.signup('user-123', '[email protected]')
log.auth.failedLogin('[email protected]', 'invalid password')
// Organization events
log.org.created('org-123', 'user-123')
log.org.memberAdded('org-123', 'user-456', 'admin')
log.org.memberRemoved('org-123', 'user-456')
log.org.accessDenied('org-123', 'user-789')
// Database events
log.db.query('SELECT', 'users', 45)
log.db.slowQuery('JOIN', 'orders', 2500)
log.db.error('INSERT', 'users', new Error('Duplicate key'))Configuration
Configure via environment variables:
| Variable | Default | Description |
|----------|---------|-------------|
| LOG_LEVEL | info | Minimum log level: debug, info, warn, error, fatal, silent |
| NODE_ENV | - | Set to production for JSON output |
License
MIT
