pikku-pino
$
npx mdskill add pikkujs/pikku/pikku-pinoInitialize PinoLogger for structured JSON logging in Pikku apps.
- Enables developers to configure log levels and output structured JSON.
- Depends on @pikku/pino package and implements the Logger interface.
- Triggers only when PinoLogger is used or structured logging is requested.
- Returns ready-to-use logger instances with standard logging methods.
SKILL.md
.github/skills/pikku-pinoView on GitHub ↗
---
name: pikku-pino
description: 'Use when setting up structured logging with Pino in a Pikku app. Covers PinoLogger setup and log levels.
TRIGGER when: code uses PinoLogger, user asks about structured logging, Pino, or @pikku/pino.
DO NOT TRIGGER when: user asks about ConsoleLogger (use pikku-services) or general service setup.'
---
# Pikku Pino (Structured Logging)
`@pikku/pino` provides structured JSON logging via [Pino](https://getpino.io/). Implements the `Logger` interface from `@pikku/core`.
## Installation
```bash
yarn add @pikku/pino
```
## API Reference
### `PinoLogger`
```typescript
import { PinoLogger } from '@pikku/pino'
const logger = new PinoLogger()
```
No constructor parameters. Creates a Pino logger instance.
**Properties:**
- `pino: pino.Logger` — Access the underlying Pino instance for advanced config.
**Methods:**
- `setLevel(level: LogLevel): void` — Set minimum log level.
- `info(messageOrObj: string | Record<string, any> | Error): void`
- `warn(messageOrObj: string | Record<string, any> | Error): void`
- `error(messageOrObj: string | Record<string, any> | Error): void`
- `debug(messageOrObj: string | Record<string, any>): void`
## Usage Patterns
### Basic Setup
```typescript
import { PinoLogger } from '@pikku/pino'
const logger = new PinoLogger()
logger.setLevel('debug')
```
### With Pikku Services
```typescript
const createSingletonServices = pikkuServices(async (config) => {
const logger = new PinoLogger()
return { config, logger }
})
```
### Accessing Underlying Pino
```typescript
const logger = new PinoLogger()
logger.pino.child({ module: 'auth' }).info('Token verified')
```