Quick Start: Send Logs to LogClaw
LogClaw ingests logs via OTLP (OpenTelemetry Protocol) — the CNCF industry standard. Every major language and framework has an OTel SDK. Your endpoint:| Protocol | URL |
|---|---|
| HTTP | https://otel.logclaw.ai/v1/logs |
| gRPC | otel.logclaw.ai:443 |
Option 1: Quick Test with curl (30 seconds)
No SDK needed. Send a log right now:Option 2: Python App (3 minutes)
Install
Add to your app
logging.info(), logging.error(), etc. all flow to LogClaw automatically.
Django
logger.info() calls auto-forward to LogClaw.
Flask
FastAPI
Celery (Background Workers)
Option 3: Node.js App (3 minutes)
Install
Express
Next.js
next.config.js:
NestJS
Fastify
With Winston
With Pino
Option 4: Java App (3 minutes)
Spring Boot (Zero Code Changes)
Download the OTel Java Agent — it auto-instruments your app:log.info(), log.error(), Spring request logs, and exception stack traces automatically flow to LogClaw.
Spring Boot via application.properties (Alternative)
Quarkus
Micronaut
Kotlin (Ktor)
Log4j2 / Logback
Add the OTel appender to your logging config:Option 5: Go App (3 minutes)
Gin
Fiber
Echo
Option 6: Ruby App (3 minutes)
Install
Add to your app
Rails Auto-Instrumentation (Zero Code Changes)
Option 7: .NET / C# App (3 minutes)
Install
ASP.NET Core
ILogger calls (LogInformation, LogError, LogWarning) automatically flow to LogClaw.
Option 8: Rust App (3 minutes)
Add to Cargo.toml
Add to main.rs
Option 9: PHP App (3 minutes)
Install
Add to your app
Laravel
Option 10: Existing Log Shippers (Config Change Only)
Already running a log shipper? Point it at LogClaw’s OTLP endpoint:Fluentd
Fluent Bit
Vector
Logstash
Datadog Agent (Dual-Ship)
Already using Datadog? Send a copy to LogClaw:Option 11: Any App via OTel Collector Sidecar (Zero Code Changes)
For apps that write logs to stdout or log files — any language, any framework — deploy an OTel Collector alongside your app to auto-scrape and forward logs. No SDK needed.Docker Compose example
Kubernetes DaemonSet
For Kubernetes clusters, deploy the OTel Collector as a DaemonSet to auto-collect logs from all pods:Option 12: Drag & Drop (Dashboard Upload)
For testing or one-time imports, the LogClaw dashboard supports drag-and-drop log upload:- Go to app.logclaw.ai
- Click Ingestion in the sidebar
- Drag a
.jsonor.ndjsonfile onto the upload area
What Happens After Logs Arrive
- OTel Collector receives logs, batches them (1000/batch), and writes to Kafka
- Flink ETL normalizes, enriches, and indexes into OpenSearch
- Flink Anomaly Scorer detects anomalies in real-time using ML models
- Ticketing Agent auto-creates incidents in PagerDuty/Jira/Slack when anomalies exceed threshold
- Dashboard lets you search, filter, and visualize everything
Supported Languages & Frameworks
Every option has a full code example above. Pick your stack:| Option | Language / Tool | Frameworks with Examples | Code Changes |
|---|---|---|---|
| 1 | curl / HTTP | Any HTTP client | None — just POST JSON |
| 2 | Python | Django, Flask, FastAPI, Celery | 5 lines in startup |
| 3 | Node.js | Express, Next.js, NestJS, Fastify, Winston, Pino | 5 lines in startup |
| 4 | Java / Kotlin | Spring Boot, Quarkus, Micronaut, Ktor, Log4j2, Logback | Zero — just a JVM flag |
| 5 | Go | Gin, Fiber, Echo, net/http | 5 lines in main |
| 6 | Ruby | Rails (auto-instrumentation), Sinatra | 5 lines or zero with env var |
| 7 | .NET / C# | ASP.NET Core, Minimal API | Add to Program.cs |
| 8 | Rust | Actix, Axum, Rocket (via tracing) | 5 lines in main |
| 9 | PHP | Laravel, Symfony | Add to bootstrap |
| 10 | Log Shippers | Fluentd, Fluent Bit, Vector, Logstash, Datadog Agent | Config change only |
| 11 | Any app | stdout / log files via OTel Collector sidecar | Zero — collector scrapes |
| 12 | Manual | Dashboard drag & drop | Zero — drag a JSON file |
Troubleshooting
Logs not appearing in dashboard?-
Test connectivity:
-
Check your service.name attribute is set — logs without
service.namemay not display correctly -
Verify OTLP endpoint URL — common mistakes:
- Missing
/v1/logspath for HTTP (gRPC doesn’t need it) - Using port 4317 for HTTP (that’s gRPC) or 4318 for gRPC (that’s HTTP)
- Using
http://instead ofhttps://for external access
- Missing
- Check firewall — OTLP uses port 443 (TLS-terminated) for external access