====== Инструменты отладки ====== В «ДокуВики» есть инструменты отладки. Некоторые необходимо настроить. ===Включить отладку=== Если опция конфигурацииa [[config:allowdebug]] включена , вы можете: * Добавляем ''?do=debug'' или ''&do=debug'' к URL-адресу , чтобы «ДокуВики» выводила огромный список строк отладки. * (//Вплоть до версии Hogfather 2020 //: посмотрите выходные данные ''[[xref>dbglog()]]'' в ''data/cache/debug.log'') * Получать дополнительные сообщения об ошибках, например, от некоторых серверов аутентификации. * Добавление ''?httpdebug'' или ''&httpdebug'' к URL-адресу для включения вывода отладки в HTTPClient DokuWiki * Вернуть несколько сообщений, если таблицы стилей отсутствуют * Получайте дополнительные комментарии в выводе средства визуализации xhtml. * Получите несколько резервных попыток в скомпилированном файле JavaScript с помощью ''js.php'' * Получите отладку в некоторых других местах, а также в плагинах или шаблонах, см. поиск кода для использования [[https://codesearch.dokuwiki.org/search?project=dokuwiki&project=plugin&project=template&full=allowdebug&path=-%22config%2Flang%22|разрешенного дебага.]] ===Включение ведения журнала=== //С момента выпуска Игоря 2022 года ://: «ДокуВики» имеет функцию ведения журналов. Какая информация не регистрируется, можно установить с помощью [[config:dontlog]] настройки конфигурации. * По умолчанию регистрируются только //сообщения об ошибках// и //устаревшие сообщения//, а //журнал отладки// отключен. * Вы также можете включить //журнал отладки// для получения дополнительных результатов отладки. * Через интерфейс администратора вы можете использовать [[plugin:LogViewer]]. Если доступ к LogViewer невозможен, вы можете найти файлы журналов в вашей файловой системе, например, в формате ''[wiki_folder]/data/log/error/.log''. ===Получить информацию о странице и пользователе=== Добавление ''?do=check'' или ''&do=check'' к URL запускает [[devel:action_modes#other_functions1|проверку режима действия]], которая предоставляет некоторую информацию о разрешениях пользователей и настройке «ДокуВики». ===Отладка TaskRunner === См. [[:taskrunner#Debugging|информацию об отладке]] на странице запуска задач. =====Функции отладки===== * **''[[xref>dbg|dbg($msg)]]''** \\ Вставьте блок кода на вики-страницу, заполненный $msg в виде обычного текста.\\ \\ Добавление дополнительного аргумента ''dbg($msg, $hidden=true)'' вернет $msg в виде комментария html. * **''[[xref>dbglog|dbglog($msg)]]''** \\ Записывает $msg в журнал //отладки//, отображаемый в [[plugin:LogViewer]], который сохраняется ''[wiki_folder]/data/log/debug/.log'' когда ''debug'' этот //флажок// снят в [[config:dontlog]] настройке.\\ (//Вплоть до версии Hogfather 2020//: он записывался в журнал в каталоге кеша ''data/cache/debug.log'' когда опция [[config:allowdebug]] включена.) Имейте в виду, что журнал не очищается автоматически.\\ \\ Используйте ''%%dbglog($msg, 'Header above log message')%%'' для включения заголовка над $msg. * **''[[xref>dbg_deprecated()|dbg_deprecated($alternative = '')]]''** \\ Функция для обозначения устаревших функций. Каждый вызов записывается в //устаревший журнал//, отображаемый в [[plugin:LogViewer]], если ''deprecated'' это флажок не установлен в [[config:dontlog]] настройке. В сообщении журнала упоминается: имя устаревшей функции, использующая ее функция, ее файл и строка, а также время ''$alternative'' предоставления. * **''[[xref>dbg_backtrace()]]''** \\ Напечатайте перевернутую, красиво напечатанную обратную трассировку. * **''[[xref>debug_guard|debug_guard($data)]]''** \\ Когда вы пишете собственную функцию отладки, используйте эту функцию для удаления всех данных из массива, ключ которого указывает на конфиденциальные данные. ===== Плагин «Страж» ===== Плаген [[plugin:sentry|Sentry Plugin]] позволяет регистрировать обширную информацию в [[https://sentry.io|Sentry]] сервисе. Это особенно полезно при запуске бета-тестирования в реальной среде. ===== Смотрите также ===== * Конфигурацию опции [[config:allowdebug]] * Конфигурацию опции [[config:dontlog]] и [[plugin:LogViewer]] для включения журналов * [[devel:Кэширование]] * У меня [[faq:blankpage|пустая страница]] или [[faq:error500|ошибка 500 (внутренняя ошибка сервера)]]