Which THREE features are associated with robust logging in production applications?
Log rotation caps file growth by archiving or deleting older entries once a size or time threshold is reached, directly preventing the disk space exhaustion named in the stem. Without it, unbounded log files eventually fill the volume, halting the application — a failure mode robust production logging must actively guard against.
Why this answer
Option A is correct because log rotation (e.g., via logrotate or size/time-based rolling appenders) caps log file growth and prevents disk space exhaustion, which is a core production reliability concern. Option C is correct because structured output (e.g., JSON formatters) makes logs machine-parseable, enabling reliable aggregation, searching, and alerting in tools like the ELK stack or Splunk. Option D is correct because using different logging levels per environment (e.g., DEBUG in development, WARN or ERROR in production) controls verbosity, reduces noise and cost, and keeps production logs actionable.
Option B is not inherently a robust-logging feature: writing only to stdout can be valid in containerized setups, but 'exclusively' excludes durable file or remote sinks and is not a defining best practice. Option E is incorrect because including personal user data in logs risks privacy violations (e.g., GDPR) and security exposure, so it should be avoided or masked.