@arckit/telemetry
v1.4.0
Published
Vendor-neutral telemetry toolkit — logs, errors, events, traces and metrics behind pluggable adapters (Pino, OpenTelemetry, Sentry, Matomo)
Maintainers
Readme
@arckit/observability
Structured observability toolkit with pluggable transports.
Table of Contents
Lightweight logging abstraction with a Logger interface and two built-in transports:
- Console — structured JSON output via
console[level] - File — file-based logging via pino (optional peer dependency)
pnpm add @arckit/observabilityFor the file logger, also install pino:
pnpm add pinoConsole logger
import { consoleLogger } from '@arckit/observability';
const logger = consoleLogger();
logger.log({ level: 'info', event: 'user.created', payload: { userId: '123' } });
// console.info('{"event":"user.created","userId":"123"}')File logger
import { fileLogger } from '@arckit/observability';
const logger = fileLogger({ path: './logs/app.log', console: true });
logger.log({ level: 'error', event: 'payment.failed', payload: { orderId: '456' } });Logger
type Logger = {
log: (entry: LogEntry) => void;
};LogEntry
type LogEntry = {
level: LogLevel;
event: string;
payload?: Record<string, unknown>;
};LogLevel
type LogLevel = 'debug' | 'info' | 'warn' | 'error';consoleLogger() => Logger
Creates a logger that outputs structured JSON to the console using console[level].
fileLogger(config) => Logger
| Parameter | Type | Description |
|-----------|------|-------------|
| config.path | string | File path for log output |
| config.console | boolean? | Also output to console with pino-pretty |
Creates a logger that writes structured logs to a file via pino. Automatically creates the directory if it doesn't exist.
See CONTRIBUTING.md for details.
MIT © Marc Gavanier
