This guide gets you from zero to shipping encrypted logs. The whole thing takes about a minute if you already have an account.
1. Create an Account and Log Group
Sign up at dashboard.logflux.io/signup (free, no credit card).
Once logged in:
- Go to Log Groups and create one (e.g., “production-api”)
- Go to API Keys and generate a key
- Your key will look like
eu-lf_a1b2c3d4e5f6...— the region prefix is required
export LOGFLUX_API_KEY="eu-lf_your_key_here"
2. Install an SDK
Go
go get github.com/logflux-io/logflux-go-sdk
package main
import (
"github.com/logflux-io/logflux-go-sdk/logflux"
)
func main() {
// Initialize with your API key and a node name
logflux.Init("eu-lf_your_key_here", "my-app")
logflux.Info("Application started")
logflux.Error("Something went wrong")
logflux.Debug("Detailed trace info")
}
The Go SDK also integrates with popular logging libraries (logrus, zap, zerolog, slog). For advanced use cases like batching and retry queues, use the resilient client:
import "github.com/logflux-io/logflux-go-sdk/client"
c, err := client.NewResilientClient(client.ResilientConfig{
APIKey: "eu-lf_your_key_here",
Node: "my-app",
QueueSize: 1000,
})
JavaScript / TypeScript
npm install @logflux-io/logflux-js-sdk
const { createTCPClient, createLogEntry } = require('@logflux-io/logflux-js-sdk');
const client = createTCPClient('ingest.eu.logflux.io', 8890, process.env.LOGFLUX_API_KEY);
const entry = createLogEntry('Application started', 'my-app');
await client.send(entry);
The JS SDK supports Winston, Pino, Bunyan, and other logging framework integrations. It’s TypeScript-first with full type definitions.
Python
pip install logflux-io
import logflux
client = logflux.new_unix_client("/tmp/logflux-agent.sock")
entry = logflux.new_log_entry("Application started", "my-app") \
.with_log_level(logflux.LEVEL_INFO)
client.send(entry)
The Python SDK has zero production dependencies and integrates with Python’s standard logging module via LogFluxHandler.
3. View Your Logs
LogFlux decrypts and displays logs client-side. You have three options:
LogFlux Inspector CLI
# Fetch recent logs
logflux-cli -server http://localhost:8383 -log-group my-app -n 20
# Follow logs in real-time
logflux-cli -server http://localhost:8383 -log-group my-app -f
# Output as JSON
logflux-cli -server http://localhost:8383 -log-group my-app -format json
# Run SQL queries against your logs (local DuckDB)
logflux-cli -server http://localhost:8383 -sql "SELECT * FROM logs WHERE level = 'error' LIMIT 10"
Grafana Plugin
Install the LogFlux datasource plugin to query and visualize logs directly in your Grafana dashboards. The plugin connects to the LogFlux API Server (port 8383), which handles decryption locally.
REST API
Use a Personal Access Token (PAT) to query the backend directly:
curl -H "Authorization: Bearer eu-lf_usr_your_pat_here" \
"https://your-customer.inspect.eu.logflux.io/v1/logs?log_group_id=YOUR_GROUP&limit=10"
How Encryption Works
Every log is encrypted before it leaves your machine:
- Your SDK performs an RSA handshake with the ingestor to exchange an AES-256-GCM session key
- Each log entry is encrypted client-side with AES-256-GCM
- The encrypted payload is sent via multipart/mixed to the ingestor
- The ingestor stores the encrypted blob — it never sees plaintext
- Your client tools (CLI, Grafana plugin) decrypt locally using your private key
This means LogFlux literally cannot read your logs. Not “we promise not to” — cryptographically impossible.
What’s Next
- SDK Documentation — detailed guides for Go, JavaScript, Python, and Java
- Integration Guides — Docker, Kubernetes, nginx, PostgreSQL, and 30+ more
- Security Architecture — how zero-knowledge encryption works under the hood
Questions? Check the docs at docs.logflux.io or email support@logflux.io.