tasker Posted August 18, 2013 Share Posted August 18, 2013 Здравствуйте. Бывают ситуации, когда форум выводит сообщение об ошибке в работе с базой данных, но при этом в логе ошибок SQL ничего не появляется. Как можно включить некую расширенную диагностику таких ошибок? Видел скриншоты, где на странице с ошибкой ниже даже отображается запрос SQL, вызвавший ошибку. Как такое включить? Спасибо! Link to comment Share on other sites More sharing options...
Bot Posted August 18, 2013 Share Posted August 18, 2013 Обратите внимание "Board url", указанный вами в профиле, некорректен, либо недоступен на данный момент. Пожауйста, заполните его, потому что он скорее всего потребуется при диагностике вашей проблемы. Link to comment Share on other sites More sharing options...
siv1987 Posted August 18, 2013 Share Posted August 18, 2013 Отключить логирования запросов, тогда ошибки будут сыпаться в бразузере. Для этого надо включить режим разработчика (константа IN_DEV в conf_global.php). Но так как в этом режиме обычно могут быть траблы в публичной части форума, проще всего открыть \ips_kernel\classDb.php и выше: if ( $this->return_die == true )добавить: $this->obj['use_error_log'] = 0; Но лучше все же чтобы логи записывались, и на продакшене такое не делать. 1 Link to comment Share on other sites More sharing options...
tasker Posted August 18, 2013 Author Share Posted August 18, 2013 Попробую, спасибо. В initdata.php видел несколько настроек по части дебага sql, думал, там можно что-то ещё включить. Link to comment Share on other sites More sharing options...
siv1987 Posted August 18, 2013 Share Posted August 18, 2013 IPS_SQL_DEBUG_MODE - показывает все запросы на странице, любая страница с параметром &debug=1.IPS_SQL_DEBUG_LOG - логирует все запросы в файле. 1 Link to comment Share on other sites More sharing options...
tasker Posted August 18, 2013 Author Share Posted August 18, 2013 IPS_SQL_DEBUG_LOG дополняет обычное логирование при ошибке? Т.е. это параллельная возможность? Link to comment Share on other sites More sharing options...
siv1987 Posted August 18, 2013 Share Posted August 18, 2013 Нет, он делает лог абсолютно всех запросов которые участвуют при генерации страницы. Полезно когда нужно изучить какие запросы, за сколько и где они выполняются. Link to comment Share on other sites More sharing options...
siv1987 Posted August 18, 2013 Share Posted August 18, 2013 Для этого надо включить режим разработчика... или в \admin\sources\base\ipsRegistry.php найти: IN_DEV ? 0 : 1;заменить на: ( IN_DEV OR ipsRegistry::$settings['sql_debug'] ) ? 0 : 1; Все равно $INFO['sql_debug'] не несет никакой пользы, эта переменная по моему тянется еще со времен старых версий, а сейчас она нигде не используется. Можно ее заюзать для показа в браузере. Link to comment Share on other sites More sharing options...
tasker Posted August 19, 2013 Author Share Posted August 19, 2013 @siv1987, $settings['sql_debug'] всё же используется в interface\board\index.php //-------------------------------- // Set debug mode //-------------------------------- $registry->DB()->setDebugMode( ipsRegistry::$settings['sql_debug'] == 1 ? intval($_GET['debug']) : 0 ); А что уж делает метод setDebugMode надо смотреть. Link to comment Share on other sites More sharing options...
siv1987 Posted August 19, 2013 Share Posted August 19, 2013 Регистр как переменная и установка параметров бд вне класса регистра - говорит что вряд-ли это скрипт, который участвует непосредственно при генерации страниц форума. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now