Structured JSON logging for Node.js and browser environments
npm install @ainsleydev/loggerStructured JSON logging for Node.js and browser environments using pino.
``bash`
pnpm add @ainsleydev/logger
`typescript
import { createLogger } from '@ainsleydev/logger';
const logger = createLogger({ service: 'my-app' });
logger.info('Server started', { port: 3000 });
logger.error('Connection failed', { error: err.message });
`
`typescript`
const child = logger.child({ request_id: 'abc-123' });
child.info('Handling request');
`typescript`
const logger = createLogger({
service: 'my-app', // Required
company: 'ainsley.dev', // Default: "ainsley.dev"
environment: 'production', // Default: APP_ENV || NODE_ENV || "development"
level: 'info', // Default: see below
});
- Browser: Always debug.LOG_LEVEL
- Node.js: env var, or debug in development, info in production.
Valid levels: trace, debug, info, warn, error, fatal, silent.
JSON output to stdout:
`json`
{"time":"2025-01-27T10:30:00.000Z","level":"info","msg":"Server started","company":"ainsley.dev","service":"my-app","environment":"production","port":3000}
Install pino-pretty for human-readable output in development:
`bash``
pnpm add -D pino-pretty