From fbebca7a718b7abe61c559d04a8354b9fd169b04 Mon Sep 17 00:00:00 2001 From: eileen Date: Thu, 3 Sep 2020 15:40:47 +1200 Subject: [PATCH] Add ability to enable query logging per process This allows us to run a command such as env CIVICRM_DEBUG_LOG_QUERY=1 drush cvapi Contact.get and the queries for that process (but not others) are logged. This facilitates a cleaner record of queries as it is just one process and more flexibility (and less risk of leaving it on by mistake) --- CRM/Core/Error.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/CRM/Core/Error.php b/CRM/Core/Error.php index ee418c306b..98d1a29ded 100644 --- a/CRM/Core/Error.php +++ b/CRM/Core/Error.php @@ -600,13 +600,15 @@ class CRM_Core_Error extends PEAR_ErrorStack { * @param string $string */ public static function debug_query($string) { - if (defined('CIVICRM_DEBUG_LOG_QUERY')) { - if (CIVICRM_DEBUG_LOG_QUERY === 'backtrace') { - CRM_Core_Error::backtrace($string, TRUE); - } - elseif (CIVICRM_DEBUG_LOG_QUERY) { - CRM_Core_Error::debug_var('Query', $string, TRUE, TRUE, 'sql_log', PEAR_LOG_DEBUG); - } + if (!defined('CIVICRM_DEBUG_LOG_QUERY')) { + // TODO: When its updated to support getenv(), call CRM_Utils_Constant::value('CIVICRM_DEBUG_LOG_QUERY', FALSE) + define('CIVICRM_DEBUG_LOG_QUERY', getenv('CIVICRM_DEBUG_LOG_QUERY')); + } + if (CIVICRM_DEBUG_LOG_QUERY === 'backtrace') { + CRM_Core_Error::backtrace($string, TRUE); + } + elseif (CIVICRM_DEBUG_LOG_QUERY) { + CRM_Core_Error::debug_var('Query', $string, TRUE, TRUE, 'sql_log', PEAR_LOG_DEBUG); } } -- 2.25.1