Getting Started
Get up and running with @sylphx/cat in minutes.
Installation
bash
npm install @sylphx/catbash
bun add @sylphx/catbash
pnpm add @sylphx/catbash
yarn add @sylphx/catBasic Usage
Create a logger and start logging:
typescript
import { createLogger } from '@sylphx/cat'
const logger = createLogger()
logger.info('Application started')
logger.warn('This is a warning')
logger.error('Something went wrong')With Formatters and Transports
Configure how logs are formatted and where they go:
typescript
import {
createLogger,
prettyFormatter,
consoleTransport,
fileTransport
} from '@sylphx/cat'
const logger = createLogger({
level: 'info',
formatter: prettyFormatter({
colors: true,
timestamp: true
}),
transports: [
consoleTransport(),
fileTransport({ path: './logs/app.log' })
]
})
logger.info('Hello world!')Structured Logging
Add structured data to your logs:
typescript
logger.info('User logged in', {
userId: '123',
action: 'login',
ip: '192.168.1.1',
timestamp: Date.now()
})
// Output (JSON format):
// {
// "level": "info",
// "msg": "User logged in",
// "data": {
// "userId": "123",
// "action": "login",
// "ip": "192.168.1.1",
// "timestamp": 1234567890
// }
// }Child Loggers
Create child loggers with inherited context:
typescript
const logger = createLogger({
context: {
app: 'my-api',
version: '1.0.0'
}
})
// Create child logger for auth service
const authLogger = logger.child({
service: 'auth'
})
authLogger.info('User authenticated', { userId: '123' })
// Includes: app, version, service, userIdNext Steps
- Core Concepts - Understand loggers, formatters, and transports
- Security - Learn about data redaction and OWASP compliance
- Observability - Integrate with OpenTelemetry
- Examples - Browse real-world examples
Quick Links
- API Reference - Complete API documentation
- Migration Guide - Migrate from Pino or Winston
- Best Practices - Production tips and patterns