llms.txt Content
# LogLayer
> A structured logging library with a fluent API for Typescript / Javascript. It separates log data into context (persistent), metadata (per-message), and errors with support for 25+ transports and plugins.
## Installation
```
npm install loglayer
```
## Quick Start
```typescript
import { LogLayer, ConsoleTransport } from 'loglayer'
import type { ILogLayer } from 'loglayer'
const log: ILogLayer = new LogLayer({
transport: new ConsoleTransport({
logger: console,
}),
})
log.info('Hello world!')
```
## Log Levels
```typescript
log.trace('Detailed debugging')
log.debug('Debug information')
log.info('Informational message')
log.warn('Warning message')
log.error('Error occurred')
log.fatal('Critical failure')
// Multiple parameters
log.info('User', 123, 'logged in')
```
## Metadata (per-message data)
```typescript
// Attach structured data to a single log entry
log.withMetadata({ userId: '123', action: 'login' }).info('User logged in')
// Log metadata without a message
log.metadataOnly({ status: 'healthy', cpu: '45%' })
```
## Context (persistent data across all log entries)
```typescript
// Set context - persists across all subsequent logs
log.withContext({ requestId: 'abc-123', service: 'auth' })
log.info('Processing') // includes requestId and service
log.info('Done') // still includes requestId and service
// Read, clear, mute
log.getContext()
log.clearContext() // clear all
log.clearContext(['requestId']) // clear specific keys
log.muteContext() // temporarily disable
log.unMuteContext()
```
## Error Handling
```typescript
// Error with a message
log.withError(new Error('Connection failed')).error('DB error')
// Error only (no extra message)
log.errorOnly(new Error('Connection failed'))
// Combine error with metadata
log.withError(new Error('Timeout'))
.withMetadata({ query: 'SELECT *', duration: 1500 })
.error('Query failed')
```
## Error Serialization (recommended)
```typescript
im