SRE-native log CLI

One command for logs.

Find, search, and follow logs without remembering paths or chaining tail, grep, find, and journalctl. Built for SREs, always free, and open source.

Open sourceAlways freeCLI-firstLinux & macOS
terminal
$ logc api 'timeout|reset' --since 30m -f

/srv/api/log/app.log (3 matches)
2026-08-08 13:47:32  INFO  [http]  request_id=8f1a9  GET /v1/users 200 34ms
2026-08-08 13:48:03  WARN  [db]    slow query detected 512ms
2026-08-08 13:49:11  ERROR [http]  request_id=8f1aa  upstream timeout after 30s
2026-08-08 13:49:12  INFO  [retry] retrying request_id=8f1aa attempt=1
-- following -- (press Ctrl+C to stop)

/srv/api/log/app.log.1.gz (2 matches)
2026-08-08 13:35:21  WARN  [cache] connection reset by peer
2026-08-08 13:36:45  ERROR [http]  request_id=8f199 upstream timeout after 30s

/var/log/journal/3b8f.../system.journal (1 match)
2026-08-08 13:42:02  WARN  systemd[1]: api.service: Main process exited,
                                   code=exited, status=1/FAILURE
3 files · 6 matches · since 30m · following (live) ●
Before
$ find /srv -name '*.log'
$ grep -Ei 'timeout|reset' ...
$ zgrep -Ei 'timeout|reset' *.log.gz
$ tail -f app.log | grep ERROR
After
$ logc api 'timeout|reset' --since 30m -f
Less path-hunting. Less command memorization. Faster debugging.

Built around the way SREs debug

Smart discovery

Find logs by service name, path, process, PID, or port.

Search built in

Regex search without shelling out to grep or zgrep.

Follow live

Search history, then continue following new matching lines.

System aware

Works with files, journald, and common Linux log sources.

Noise control

Ignore health checks, dedupe spam, and keep hot logs from flooding the screen.

Open source forever

Open development. Free to use, now and always.

How logc works

You remember the problem. logc finds the source, searches the history, and follows what matters.

1See active app logs
$ logc

/srv/api/log/app.log
14:21:01 INFO server started
14:21:05 INFO listening on :8080
14:21:09 INFO health check OK

/srv/worker/log/worker.log
14:20:58 INFO job completed id=842
14:21:02 INFO pulled 10 tasks

/var/log/nginx/access.log
14:21:03 INFO 200 GET /health 1ms

3 files · latest lines
2Search a service
$ logc payment ERROR

/srv/payment/log/app.log
14:17:11 ERROR charge failed
request_id=9d2b1 code=42

/srv/payment/log/app.log.1.gz
14:02:55 ERROR upstream timeout
after 30s
request_id=9c8a0

2 files · 2 matches
3Jump from port to logs
$ logc :8080

:8080 → PID 21819 → payment-api
      → /srv/payment/log/app.log

/srv/payment/log/app.log
14:21:17 INFO GET /v1/orders 200
14:21:18 ERROR upstream timeout
          after 30s
14:21:19 INFO retrying id=aa91

resolved automatically
4Find process logs
$ logc @nginx

Process: nginx (PID 1542)
User: www-data
Resolved sources:
 • /var/log/nginx/access.log
 • /var/log/nginx/error.log
 • journald: _COMM=nginx

/var/log/nginx/error.log
14:20:59 ERROR connect() failed
          (111: Connection refused)

3 sources · following

Why SREs like it

Fewer commands to remember Faster incident triage Quicker request-id tracing Easier debugging on unfamiliar machines Better focus during oncall
Less command switching

Stay in flow.

ϟ
Faster path discovery

Find the right log instantly.

Cleaner incident workflow

From signal to resolution.

Better oncall ergonomics

Reduce cognitive load.

Open source. Always free.

logc is built in the open and intended to remain free for every engineer, SRE, and ops team. Fork the project, build the feature you need, and open a pull request.

Install
Keep installation boring.
Install the CLI and start exploring local application logs immediately.
$ brew install logc

Resources for logging & observability

Useful foundations, standards, open-source tools, and commercial logging platforms.