쿼리 로그 앞에 주석 추가 지원

무엇?

기존 쿼리 로그 태그 기능의 자연스러운 확장으로 ActiveRecord::QueryLogs.prepend_comment에 대한 지원을 추가합니다. 이 새로운 설정은 현재 사용 중인 RAILS_QUERY_LOG_TAGS 환경 변수와 함께 작동합니다.

왜?

쿼리 로그 태그는 디버깅에 매우 유용하지만, 한 가지 문제가 있습니다. 길고 복잡한 쿼리를 다룰 때 PostgreSQL을 비롯한 기타 데이터베이스는 종종 로그를 잘라냅니다. 이 경우 쿼리 태그(기본적으로 끝에 추가됨)에서 비롯된 유용한 컨텍스트가 잘려 나가 애플리케이션의 어떤 부분이 해당 쿼리를 생성했는지 추적하기 어려워집니다.

prepend_comment를 활성화하면 쿼리 태그가 SQL 쿼리의 끝이 아닌 시작 부분에 배치됩니다. 이를 통해 쿼리가 로그에서 잘려 나가더라도 컨트롤러 이름, 액션 이름, 작업 정보와 같은 중요한 디버깅 정보를 여전히 확인할 수 있습니다.

어떻게?

이 기능은 선택적(opt-in)이며 Discourse의 기존 설정 패턴을 따릅니다:

  1. 쿼리 로그 태그 활성화(아직 활성화되지 않은 경우): RAILS_QUERY_LOG_TAGS=1
  2. 앞부분 주석(prepend comment) 활성화: RAILS_QUERY_LOG_PREPEND_COMMENT=1

이 기능은 두 가지 조건이 모두 충족될 때만 활성화됩니다. 즉, 쿼리 로그 태그가 활성화되어 있어야 하고 prepend comment 플래그가 설정되어 있어야 합니다. 이를 통해 하위 호환성을 유지하면서 운영자가 로깅 설정에 대해 세밀한 제어를 할 수 있습니다.

구현 PR: Add support for ActiveRecord::QueryLogs.prepend_comment - Pull Request #35888 - discourse/discourse - GitHub