As a Developer, you cannot attach the debugger to your application in Production, but you *can* use logging in a way which means you can diagnose problems very easily in both development AND Production. You also get to make friends with Operations people - win! In this tutorial, we'll show you how to get up and running with ELK (Elastic Search, LogStash, Kibana) with Vagrant on your developer machine for awesome logging-fu. Warning: may contain DevOps.
How to ditch the debugger
Use Vagrant + ELK on development VM
Use a set of event type IDs (enums)
Log distinct states of execution
Both technical and domain events
Consistent event naming helps with search
Compare previous and current executions
New logging-fu: make friends with Ops!
Tune logging levels in Production without recompiling code:
VELK (Vagrant + ELK) demo VM:
GOOS book (section on logging: p.233-5):