Free-text log lines are easy to write but hard to search, since every query becomes a fragile regex. Structured logs write each event as JSON fields, so a tool can filter by level, service or user_id and count results. Use them in any service whose logs will be read by a log tool, and add a trace id so you can follow one request across services. Keep the message constant and put the changing values in fields, and never log passwords or tokens.