\n \n \n \n \n \n \n \n \n \n
Replace Pino with better-logger in ~15 minutes. Fewer dependencies. Better output.
| Feature | Pino | better-logger |
|---|---|---|
| Dependencies | 8+ | 0 |
| Bundle size | 30KB | 3.8KB |
| Auto-flow grouping | โ | โ |
| Automatic timing | Manual | โ |
| Hierarchical output | โ | โ |
| Browser support | โ | โ |
| TypeScript | โ | โ |
npm uninstall pino
npm install @better-logger/core
import pino from 'pino'
const logger = pino()
logger.info('User created', { email: user.email })
logger.warn('Slow query', { duration: 250 })
logger.error('Payment failed', error)
import { better } from '@better-logger/core'
better.log.info('User created', { email: user.email })
better.log.warn('Slow query', { duration: 250 })
better.log.error('Payment failed', error)
const childLogger = logger.child({ requestId })
childLogger.info('Processing request')
better.log('Processing request', { requestId })
const logger = pino({
transport: {
target: 'pino/file',
options: { destination: './app.log' }
}
})
better.log.toFile('./app.log', { append: true })
const logger = pino({ redact: ['password', 'ssn'] })
better.log.redact(['password', 'ssn'])
| Pino | better-logger |
|---|---|
logger.info(msg, obj) | better.log.info(msg, obj) |
logger.warn(msg, obj) | better.log.warn(msg, obj) |
logger.error(msg, obj) | better.log.error(msg, obj) |
logger.child(obj) | better.log(msg, obj) |
pino({ transport }) | better.log.toFile() |
pino({ redact }) | better.log.redact() |
pino({ serializers }) | Auto-serialized via safeSerialize() |