Разделы

Лог SQL запросов

Как можно посмотреть SQL запросы конкретного сниппета или всей системы в целом?
  • 0
  • 29 декабря 2011, 04:54
  • vanchelo

Комментарии (9)

RSS свернуть / развернуть
0
Если не ошибаюсь, то можно посмотреть только количество запросов, время SQL и PHP… более точно этот вывод есть в API… а если тебе нужен лог, то тут только руками собирать
avatar

botik87

  • 29 декабря 2011, 05:23
0
да, нужен именно лог самих запросов SQL, не время выполнения скрипта и не кол-во запросов к базе данных
avatar

vanchelo

  • 29 декабря 2011, 05:32
0
Сомневаюсь что такой есть вообще…
А зачем он тебе?
avatar

botik87

  • 29 декабря 2011, 05:39
0
интересно посмотреть на запросы от различных сниппетов и админки
avatar

vanchelo

  • 29 декабря 2011, 06:06
0
В своем сниппете вы можете использовать

$q = newQuery('modResource');
$q->where(array('id' => 5));
$q->prepare();
$modx->log(modX::LOG_LEVEL_ERROR, $q->toSql());

$if ($res = $modx->getCollection('modResource', $q)) {
...
}

ERROR — чтобы вы видели в системном логе эти сообщения, есть еще и INFO и DEBUG.
Если хотите видеть все запросы у чужих сниппетов — впишите это в класс xpdo, куда нить.
rtfm.modx.com/display/XPDO10/xPDO.log

Есть еще

$modx->setDebug('true');

Очень подробная информация, но sql запросов там вроде нет.
avatar

bezumkin

  • 29 декабря 2011, 10:33
0
Интереса ради, есть магазин и у него запросы прям на странице в исходном коде пишутся в самом низу! Какова цель этого лога на рабочем проекте?
respekt.lg.ua
avatar

vanchelo

  • 29 декабря 2011, 06:10
0
Забыли убрать при разработке, думаю. Магазин же на реконструкции, может еще что делают.
Вообще, это огромная дырка.

avatar

bezumkin

  • 29 декабря 2011, 10:27
0
Дело в том что это было и на рабочем магазине!
avatar

vanchelo

  • 29 декабря 2011, 15:56
0
Подправить конфиг mysql
root@web:/# cat /etc/mysql/my.cnf | grep general_log
general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

Перезапустить mysql демона
root@web:/# /etc/init.d/mysql restart
Stopping MySQL database server: mysqld.
Starting MySQL database server: mysqld.


Читаем
tail -f /var/log/mysql/mysql.log
avatar

stone

  • 29 декабря 2011, 12:16

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.