XDebug настройки по-умолчанию. прошу изменить

Советы и рекомендации, полезные инструкции, обмен опытом
molottt
Сообщения: 17
Зарегистрирован:
22 фев 2012, 22:45

XDebug настройки по-умолчанию. прошу изменить

molottt » 22 фев 2012, 22:55

бардак с логами профайлинга и трассировки. щас создается какая-то хрень:
xdebug.profiler_output_name = "cachegrind.out.%t.%p"
xdebug.trace_output_name = "trace.%c"

по названию лога непонятно ничерта. посему сделать по-людски:
xdebug.profiler_output_name = "cachegrind.out.%H"
xdebug.trace_output_name = "trace.%H"

для хоста http://test:
trace.test.xt
cachegrind.out.test
Аватара пользователя
Максим
Сообщения: 5408
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Re: xDebug настройки по-умолчанию. прошу изменить

Максим » 22 фев 2012, 23:19

Дело в том, что эта, как вы выразились, хрень, создаётся для встроенного в Open Server инструмента Webgrind - удобного web интерфейса для анализа производительности (profiling) PHP скриптов. Создаётся конечно же в формате который требует Webgrind. Если вы планируете использовать другой инструмент для анализа логов, то настройте пожалуйста PHP так, как вам нравится, что вы в общем-то и сделали. Формат по умолчанию изменять я не буду.
molottt
Сообщения: 17
Зарегистрирован:
22 фев 2012, 22:45

Re: xDebug настройки по-умолчанию. прошу изменить

molottt » 23 фев 2012, 11:12

я знаю для чего эта хрень создается. поэтому и говорю. и советую более удобный формат. попробую разжевать:

1. По-умолчанию лог профайлера и трассировки перезаписывается. Т.е. страничку в браузере обновили - лог записался в тот же файл. не добавил логи в конец файла, а перезаписал.
2. Но с форматом указанным у тебя:
xdebug.profiler_output_name = "cachegrind.out.%t.%p"
имена логов профайлинга множатся и выглядят так:
cachegrind.out.123456789.4407
cachegrind.out.456789123.4407
cachegrind.out.789456123.4407
ибо:
- параметр %t генерирует случайное число.
- параметр %p пишет id процесса.

Когда в работе 5-10 хостов, и постоянно идет отладка - в папке логов ровно через 3 минуты образуется жуткая помойка из логов, по имени которых ничего нельзя определить (какой файл к какому хосту относится, какой файл является последним).

Мой формат наводит порядок. т.е.
-на 1 хост - 1 файл логов профайлера.
-он перезаписывается, а не множится
-по имени файла лога можно понять к какому хосту он относится.
Вообщем проще попробовать, тогда поймешь о чем речь.

А так проблем нет. Максим спасибо за продукт. Донате сделали :)
Аватара пользователя
Максим
Сообщения: 5408
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Re: xDebug настройки по-умолчанию. прошу изменить

Максим » 23 фев 2012, 11:49

Вы наверное меня не до конца поняли. Тот формат, с которым создаются файлы сейчас - это формат встроенного в Open Server инструмента Webgrind. Если настроить другой формат имён файлов, то Webgrind попросту не будет видеть эти файлы. Да, вот такой упрямый инструмент. Если вы знаете как это побороть, то напишите пожалуйста.

Чтобы не создавалась куча мусора, использует профайлинг по ссылке, т.е. только для тех запросов где он нужен: http://localhost/samplepage.php?XDEBUG_PROFILE

для этого в php.ini делается
xdebug.profiler_enable_trigger = 1
Аватара пользователя
Максим
Сообщения: 5408
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Re: xDebug настройки по-умолчанию. прошу изменить

Максим » 23 фев 2012, 13:01

:P Нашел изящное решение:

xdebug.profiler_output_name = "cachegrind.out.%H%R"

Так создаётся файл с именем хоста + запрошенным URI, и Webgrind все файлы показывает, и мусора не создаётся.

Проблема была в том, что Webgrind не показывает файлы с одинаковым именем, если одно из них совпадает с именем профайлинг-лога самого Webgrind. Ваше решение, molottt, как раз создавало такую проблему.
Аватара пользователя
Максим
Сообщения: 5408
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Re: xDebug настройки по-умолчанию. прошу изменить

Максим » 23 фев 2012, 13:04

Ну и кому надо, для справки:

%c – CRC рабочего каталога
%p – идентификатор процесса
%r – случайное число
%u – текущее время с микросекундами
%H – значение $_SERVER['HTTP_HOST']
%R – значение $_SERVER['REQUEST_URI']
%s – имя, включающее полный путь, слеши конвертируются в знаки подчеркивания
papdjonn
Сообщения: 42
Зарегистрирован:
24 фев 2012, 14:31

Re: xDebug настройки по-умолчанию. прошу изменить

papdjonn » 24 фев 2012, 14:46

Оу, спасибо Максим, за хорошее решение, а то и правда куча мусора создавалась. Прям лопатой выгребай :D
molottt
Сообщения: 17
Зарегистрирован:
22 фев 2012, 22:45

Re: xDebug настройки по-умолчанию. прошу изменить

molottt » 25 фев 2012, 19:17

Максим писал(а)::P Нашел изящное решение:
xdebug.profiler_output_name = "cachegrind.out.%H%R"
ну или так, да. спасибо что услышал ;)
Ответить