Озаглавливание лога трассировки

Как вы знаете можно явно указывать название лога трассировки. xdebug_start_trace('c:/data/fac.xt'); Это не всегда удобно. Если вам необходимо рассматривать логи в зависимости от входящих данных или состояния приложения, неплохо чтобы сам xdebug автоматически присваивал название. xdebug может присваивать имя в зависимости от того что вы используете, параметр xdebug.auto_trace или функцию xdebug_start_trace() для активации трассировки. Если в последнем примере передать пустой аргумент в качестве параметров функции xdebug_start_trace, xdebug автоматически выберет имя для файла. Название файла сгенерированного xdebug всегда начинается с «trace.» и имеет расширение .xt. Часть имени между точками по умолчанию это CRC от рабочего каталога. Устанавливая debug.trace_output_name вы можете определить другое имя для лога трассировки. xdebug.trace_output_name принимает строку в качестве аргумента, строка может содержать различные спецификаторы. Ниже список самых важных спецификаторов:

  • %c - CRC рабочего каталога
  • %p – идентификатор процесса
  • %r – некое случайное число
  • %u – текущее время с микросекундами
  • %H - $_SERVER['HTTP_HOST']
  • %R - $_SERVER['REQUEST_URI']

Используя умную комбинацию указанных спецификаторов, вы можете заставить xdebug создавать различное количество логов трассировки и понимать какой лог к какому сценарию относится в зависимости от названия виртуального хоста или запросов. В большинстве случаев вы захотите создать для одного запуска скрипта. Поэтому xdebug перезапишет существующий лог с указанным именем. Вы можете настроить, чтобы xdebug добавлял информацию к текущему, используя следующую настройку

xdebug.trace_options = 1

в php.ini. Если вам необходимо знать во время запуска какое имя выберет xdebug для записи лога, вы можете вызвать функцию debug_get_tracefile_name().