무엇?
기존 쿼리 로그 태그 기능의 자연스러운 확장으로 ActiveRecord::QueryLogs.prepend_comment에 대한 지원을 추가합니다. 이 새로운 설정은 현재 사용 중인 RAILS_QUERY_LOG_TAGS 환경 변수와 함께 작동합니다.
왜?
쿼리 로그 태그는 디버깅에 매우 유용하지만, 한 가지 문제가 있습니다. 길고 복잡한 쿼리를 다룰 때 PostgreSQL을 비롯한 기타 데이터베이스는 종종 로그를 잘라냅니다. 이 경우 쿼리 태그(기본적으로 끝에 추가됨)에서 비롯된 유용한 컨텍스트가 잘려 나가 애플리케이션의 어떤 부분이 해당 쿼리를 생성했는지 추적하기 어려워집니다.
prepend_comment를 활성화하면 쿼리 태그가 SQL 쿼리의 끝이 아닌 시작 부분에 배치됩니다. 이를 통해 쿼리가 로그에서 잘려 나가더라도 컨트롤러 이름, 액션 이름, 작업 정보와 같은 중요한 디버깅 정보를 여전히 확인할 수 있습니다.
어떻게?
이 기능은 선택적(opt-in)이며 Discourse의 기존 설정 패턴을 따릅니다:
- 쿼리 로그 태그 활성화(아직 활성화되지 않은 경우):
RAILS_QUERY_LOG_TAGS=1 - 앞부분 주석(prepend comment) 활성화:
RAILS_QUERY_LOG_PREPEND_COMMENT=1
이 기능은 두 가지 조건이 모두 충족될 때만 활성화됩니다. 즉, 쿼리 로그 태그가 활성화되어 있어야 하고 prepend comment 플래그가 설정되어 있어야 합니다. 이를 통해 하위 호환성을 유지하면서 운영자가 로깅 설정에 대해 세밀한 제어를 할 수 있습니다.