Добавлена поддержка добавления комментариев к логам запросов в начало

Что?

Добавлена поддержка ActiveRecord::QueryLogs.prepend_comment как естественного расширения существующей функции тегов логирования запросов. Этот новый параметр работает в паре с текущей переменной окружения RAILS_QUERY_LOG_TAGS.

Зачем?

Теги логирования запросов чрезвычайно полезны для отладки, но есть один нюанс: при работе с длинными сложными запросами PostgreSQL и другие базы данных часто обрезают логи. В таких случаях ценная информация из тегов запросов (которые по умолчанию добавляются в конец) оказывается отрезанной, что затрудняет отслеживание того, какая часть приложения сгенерировала запрос.

При включении параметра prepend_comment теги запросов перемещаются в начало SQL-запроса вместо конца. Это гарантирует, что даже при обрезке запросов в логах вы всё равно сможете видеть критически важную отладочную информацию, такую как имена контроллеров, имена действий и данные о заданиях.

Как?

Функция должна быть включена по желанию и следует существующему в Discourse паттерну конфигурации:

  1. Включить теги логирования запросов (если они ещё не включены): RAILS_QUERY_LOG_TAGS=1
  2. Включить добавление комментария в начало: RAILS_QUERY_LOG_PREPEND_COMMENT=1

Функция активируется только при выполнении обоих условий: должны быть включены теги логирования запросов и установлен флаг добавления комментария в начало. Это обеспечивает обратную совместимость и даёт администраторам тонкий контроль над настройкой логирования.

PR с реализацией: Add support for ActiveRecord::QueryLogs.prepend_comment by mudit-1996 · Pull Request #35888 · discourse/discourse · GitHub