Hello! The following patch series introduces error_log rate limiting, with the default rate limit set to 1000 messages per second (for each worker process).
Rate limiting uses "leaky bucket" algorithm (as in the limit_req module) with burst set to a value proportional to the log message severity, so more severe messages can be logged even if less severe are already rate-limited. That is, rate limiting more or less dynamically adjusts log level to keep logging rate under the specified limit. Review and testing appreciated. -- Maxim Dounin