Get up and running with better-logger in 5 minutes. Zero configuration required.
npm install @better-logger/core
That's it. No dependencies, no config files, no setup scripts.
ES Modules:
import { better } from '@better-logger/core'
CommonJS:
const { better } = require('@better-logger/core')
// Drop-in for console.log
better.log('Server started on port 3000')
better.log('User created', { email: 'test@example.com' })
better.log.warn('Slow query detected', { duration: 250 })
better.log.error('Database connection failed', error)
๐ก Tip: That's all you need. Replace console.log with better.log and you're done. The output is automatically structured, timed, and grouped.
When you need structure for complex operations:
const flow = better.flow('checkout', { tags: ['payment'] })
flow.setContext({ userId: 'user-123' })
const step = flow.step('charge-card', { amount: 99.99 })
const result = await paymentGateway.charge({ amount: 99.99 })
step.success(result)
flow.success()
better.log.info('Server started', { port: 3000 })
better.log.warn('Slow query', { duration: 250 })
better.log.error('Connection failed', error)
// Auto-complete timeout (default: 100ms)
better.setIdleTimeout(200)
// Default flow name (default: 'default')
better.setFlowName('my-app')
// Tags applied to all implicit flows
better.setDefaultTags(['my-app', 'production'])
// Disable all logging
better.setEnabled(false)
// Write to file
better.log.toFile('app.log', { append: true })
// Send to HTTP endpoint
better.log.toHttp('https://api.example.com/logs')
// Redact sensitive fields
better.log.redact(['password', 'ssn'])
// Non-blocking async mode
better.log.async(true)