Logs without context are confetti
A line that says "failed" is technically a log and practically useless. The future reader needs who, what, where, why now, and which request ties it together.
The useful signal is usually already there.
A tiny patch rarely touches only one thing. Push it and watch the review surface appear.
Log facts, not panic
Use structured fields for ids, state, attempt counts, durations, and decision points. Avoid logging secrets, blobs, or poetic stack traces with no handle.
Structured logs are easier to search, alert, and join.
Sample the noisy path
Logs should explain rare failures without drowning normal traffic. Put more context near state transitions and fewer words in hot loops.
Flip the switches and watch the story turn into a tiny operating model.
Write logs for the operator
Good logs are an interface between past code and present panic. Make them humane.