Start here. This is the direct spoken answer to practice first.
Overview
Structured logs should preserve the meaning of an event as fields, not force operators to parse prose during an incident.
I log through SLF4J with a stable event message and structured fields such as operation, outcome, dependency, and safe identifiers. With Spring Boot structured logging, the output can follow a machine-readable format, and Micrometer tracing can add trace and span IDs for correlation. MDC is useful for request-scoped values, but it must be populated and cleared correctly across pooled threads.