Что?
Добавлена поддержка ActiveRecord::QueryLogs.prepend_comment как естественного расширения существующей функции тегов логирования запросов. Этот новый параметр работает в паре с текущей переменной окружения RAILS_QUERY_LOG_TAGS.
Зачем?
Теги логирования запросов чрезвычайно полезны для отладки, но есть один нюанс: при работе с длинными сложными запросами PostgreSQL и другие базы данных часто обрезают логи. В таких случаях ценная информация из тегов запросов (которые по умолчанию добавляются в конец) оказывается отрезанной, что затрудняет отслеживание того, какая часть приложения сгенерировала запрос.
При включении параметра prepend_comment теги запросов перемещаются в начало SQL-запроса вместо конца. Это гарантирует, что даже при обрезке запросов в логах вы всё равно сможете видеть критически важную отладочную информацию, такую как имена контроллеров, имена действий и данные о заданиях.
Как?
Функция должна быть включена по желанию и следует существующему в Discourse паттерну конфигурации:
- Включить теги логирования запросов (если они ещё не включены):
RAILS_QUERY_LOG_TAGS=1 - Включить добавление комментария в начало:
RAILS_QUERY_LOG_PREPEND_COMMENT=1
Функция активируется только при выполнении обоих условий: должны быть включены теги логирования запросов и установлен флаг добавления комментария в начало. Это обеспечивает обратную совместимость и даёт администраторам тонкий контроль над настройкой логирования.
PR с реализацией: Add support for ActiveRecord::QueryLogs.prepend_comment by mudit-1996 · Pull Request #35888 · discourse/discourse · GitHub