Start here. This is the direct spoken answer to practice first.
Why this question matters
Logs need to be searchable under pressure. Free-text dumps and secret-heavy logs both fail when an incident is happening.
I would use structured logs with consistent fields such as correlation id, route, status code, tenant id where safe, user id where safe, dependency name, duration, and error category. I would avoid logging raw passwords, tokens, API keys, reset links, full payment data, or large request bodies. The log explains the event and decision path without copying sensitive inputs forever.