See everything.Miss nothing.

Structured log aggregation with real-time streaming, multi-tenant isolation, and AI-powered analysis.

Built for production

Everything you need to understand what your systems are doing — without the noise.

Real-time streaming

WebSocket and HTTP ingestion with sub-second latency. Logs appear the instant they're emitted.

Multi-tenant isolation

Each workspace is completely isolated. API keys, quotas, and data are scoped per tenant.

Structured data

Levels, groups, trace IDs, metadata maps, and stack traces — all searchable and filterable.

AI analysis via MCP

Connect Claude directly to your logs. Ask questions in natural language, get SQL-powered answers.

File tree organization

Organize logs into folders and files — like a filesystem. Navigate with a VS Code-style tree view.

ClickHouse powered

Billions of log entries, millisecond queries. Partitioned by tenant, log file, and date with automatic TTL.

Familiar interface

A log viewer that feels like your editor. Dark mode, monospace, keyboard-driven.

production.log
api-gateway.log
workers.log

Three lines to start logging

Drop in the SDK. Point it at your log file. Ship it.

app.ts
import { MoonLog } from '@moonlog/sdk'

const log = new MoonLog({
  apiKey: 'mk_your_api_key',
  logId: 'production.log'
})

log.info('Server started on port 3000')
log.error('Connection failed', {
  stack: err.stack,
  metadata: { host: 'db-primary' }
})

Start logging under moonlight

Free to use. Set up in under a minute.

Get started