Журналирование неожиданных ошибок, возникших в вашем приложении или плагине это способ #1 для определения причины возникновения ошибки. Часто, правильное журналирование может сберечь вам кучу времени, которое вы могли бы потратить на воспроизведение возникшей проблемы. Основной способ ведения журналов проблем в Invision Community это класс \IPS\Log.
Основное журналирование
Когда вам нужно записать непредвиденную ситуацию, вы должны использовать метод \IPS\Log::log(). Первым параметром должен быть либо экземпляр Исключения (Exception), либо строка для записи. Вторым параметром должна быть случайно выбранная "категория".
try
{
throw new \UnexpectedValueException( 'Моё сообщение', 200 );
}
catch( \Exception $e )
{
\IPS\Log::log( $e, 'my_app_issue' );
\\ Вывести сообщение об ошибке
}
Здесь информация об исключении будет записана в категорию 'my_app_issue', которую вы можете назвать как угодно. Используя уникальные коды ошибок, вы можете более легко определить, где была зарегистрирована запись в системном журнале, когда пользователь сообщает об этой проблеме администратору.
Отладочный журнал
В дополнение к основному журналированию вы также можете записывать отладочные сообщения, полезные при работе для диагностики проблем в своем приложении и в первую очередь для разработки. Определение функции такое же, как метод log(), за исключением того, что вы вызываете debug().
try
{
throw new \UnexpectedValueException( 'Моё сообщение', 200 );
}
catch( \Exception $e )
{
\IPS\Log::debug( $e, 'my_app_issue' );
\\ Сообщение об ошибке
}
Чтобы включить запись отладочных сообщений, вам необходимо включить константу в файле constants.php.
define( 'DEBUG_LOG', true );
Затем вы можете просмотреть системные журналы в админцентре, используя фразу "System logs" в живом поиске.