Logs
SeeKi logs to your terminal. There is no log file, no rotation policy, and no remote sink. Whatever you see on stdout is the whole picture — which is exactly what you want while you're still confirming a connection works.
Where the logs go
| Stream | Content |
|---|---|
stdout | All tracing events — info, warnings, errors, debug, trace. |
stderr | Panics and process-level fatal errors. |
Under systemd, both streams are captured by journalctl:
journalctl --user -u seeki -f
When running in the foreground, redirect them however you like:
./seeki > seeki.log 2>&1
Log levels with RUST_LOG
Verbosity is controlled by the RUST_LOG environment variable. SeeKi defaults to seeki=info if the variable isn't set.
| Level | What you get | When to use |
|---|---|---|
info | Start-up, config loaded, server listening, connections established. | Default. Quiet enough for a long-lived install. |
debug | Request routing, query shapes, SSH tunnel lifecycle. | Working through a misbehaving feature or an unexpected 404. |
trace | Per-request detail, every SQL statement, low-level pool events. | Rare — use when debug is too quiet. Very noisy. |
Turn up verbosity for one run
RUST_LOG=seeki=debug ./seeki
Turn up everything, SeeKi included
RUST_LOG=debug ./seeki
Filter by module
SeeKi uses tracing-subscriber's EnvFilter, so RUST_LOG takes comma-separated module=level pairs. This is how you silence chatty libraries or zero in on one area.
| Module | What it covers |
|---|---|
seeki | SeeKi's own events: config, startup, app mode. |
tower_http | HTTP request/response lifecycle from the web layer. |
sqlx | Database pool, prepared statements, individual queries. |
Common combinations
Watch SeeKi at debug level while keeping SQL noise quiet:
RUST_LOG=seeki=debug,sqlx=warn ./seeki
Trace every HTTP request as it comes through the router:
RUST_LOG=seeki=info,tower_http=debug ./seeki
See every SQL query SeeKi issues:
RUST_LOG=seeki=info,sqlx=debug ./seeki
Read the last line first
On a clean boot the final line is always SeeKi listening on http://…. If you don't see it, SeeKi never finished starting up — the real error is one of the lines above.
What a healthy boot looks like
INFO seeki: Connecting to database...
INFO seeki: Loaded config from seeki.toml
INFO seeki: Connected to database
INFO seeki: SeeKi listening on http://127.0.0.1:3141
Next
- Troubleshooting — mapping error messages to fixes.
- Config locations — confirm the right file got loaded.