Aggiunta del supporto per l'inserimento di commenti nel query log

Cosa?

Aggiungere il supporto per ActiveRecord::QueryLogs.prepend_comment come estensione naturale della funzionalità esistente dei tag di log delle query. Questa nuova impostazione funziona insieme alla variabile d’ambiente corrente RAILS_QUERY_LOG_TAGS.

Perché?

I tag di log delle query sono incredibilmente utili per il debug, ma c’è un problema: quando si ha a che fare con query lunghe e complesse, PostgreSQL e altri database spesso troncano i log. Quando ciò accade, il prezioso contesto dei tag di query (che per impostazione predefinita vengono aggiunti alla fine) viene tagliato, rendendo difficile risalire a quale parte dell’applicazione ha generato la query.

Abilitando prepend_comment, i tag di query vengono spostati all’inizio della query SQL invece che alla fine. Ciò garantisce che, anche quando le query vengono troncate nei log, sarai comunque in grado di vedere le informazioni critiche di debug come i nomi dei controller, i nomi delle azioni e le informazioni sui job.

Come?

La funzionalità deve essere opt-in e segue il modello di configurazione esistente di Discourse:

  1. Abilitare i tag di log delle query (se non già abilitati): RAILS_QUERY_LOG_TAGS=1
  2. Abilitare il commento di pre-aggiunta: RAILS_QUERY_LOG_PREPEND_COMMENT=1

La funzionalità si attiva solo quando entrambe le condizioni sono soddisfatte: i tag di log delle query devono essere abilitati e deve essere impostato il flag di commento di pre-aggiunta. Ciò mantiene la retrocompatibilità e offre agli operatori un controllo granulare sulla loro configurazione di logging.

PR di implementazione: Add support for ActiveRecord::QueryLogs.prepend_comment by mudit-1996 · Pull Request #35888 · discourse/discourse · GitHub