โ† Back to Home

Getting Started

Get up and running with better-logger in 5 minutes. Zero configuration required.

1. Installation

npm install @better-logger/core

That's it. No dependencies, no config files, no setup scripts.

2. Import

ES Modules:

import { better } from '@better-logger/core'

CommonJS:

const { better } = require('@better-logger/core')

3. Basic Usage

// 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.

4. See the Difference

๐Ÿš€ [flow:default] (tid: abc123)
  โ†’ Server started on port 3000
  โœ“ Server started on port 3000 (12ms)
  โ†’ User created
    data: { email: "test@example.com" }
  โœ“ User created (45ms)
  โ†’ Slow query detected [warn]
    data: { duration: 250 }
  โœ“ Slow query detected (0ms)
  โ†’ Database connection failed [error]
  โœ— Database connection failed (error: timeout)
๐Ÿ [flow:default] failed (57ms, error: timeout)

5. Next Steps

Explicit Flows

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()

Severity Methods

better.log.info('Server started', { port: 3000 })
better.log.warn('Slow query', { duration: 250 })
better.log.error('Connection failed', error)

Configuration

// 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)

Transports

// 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)

What's Next?

API Reference โ†’ Framework Integrations โ†’