Я думаю, что у меня есть довольно распространенная проблема, но я не могу найти никакого «наилучшего практического» ответа на нее.
Я разработал множество небольших веб-приложений, основанных на домашней платформе для моих клиентов. Эти приложения используются только в очень специфичном контексте, связанном с бизнесом, они используются для чего-то вроде месяца в год в среднем десятью пользователями.
Каждое приложение имеет очень разные цели и «технологии» (иногда это модули Zend, TCPDF и т. Д.). Конечно, время от времени пользователи находят некоторые незначительные ошибки (не обработанные исключения, не установленные массивы …).
Проблема в том, что пользователи не будут сообщать об этом в течение нескольких дней или недель, поэтому, когда мне приходится отлаживать, иногда у меня нет всей необходимой мне информации (например, как ее воспроизвести, какой маршрут и т. Д.). ..).
Для моей домашней платформы (очень похожей на Laravel) я сделал несколько функций, которые обрабатывают эти ошибки (используя set_error_handler, register_shutdown_function, …). По сути, эта функция создаст некоторую запись в базе данных клиента MySQL.
Я использую эти функции для двух целей:
Единственный способ, которым я могу проанализировать все эти журналы продуктивно когда они находятся в базе данных (у меня есть таблица JQuery, отрисовка их оптимизирована для более быстрого чтения и отслеживания). В противном случае я бы просто использовал текстовые файлы, но я не могу анализировать их так быстро (слишком много информации).
Вопрос
Я только начал проект с Laravel (который я сейчас буду использовать для всех своих проектов), после прочтения документации я обнаружил, что Laravel использует Monolog для журналов. НО, у Monolog нет обработчика PDO, некоторые люди могут сказать, что использование MySQL для журналов — очень плохая идея (Может ли Laravel 4 войти в базу данных MySQL?) и я с ними полностью согласен. Но это единственный способ, который я нашел для эффективного исправления ошибок при работе с множеством небольших проектов с ограниченным временем, посвященным этому.
Примечание: у моих клиентов есть только MySQL, у меня нет времени использовать модульное тестирование (небольшая компания, денег на это нет).
Есть ли лучшее решение для моей проблемы (структурировать журнал действий пользователей и ошибок php, уведомление по почте / SMS при обнаружении ошибок), используя магию Laravel, о которой я пока не знаю?
Конечно, есть ряд инструментов, которые могут отслеживать ваши файлы журналов для вас, а затем собирать их в значимую информацию. Они могут группировать подобные ошибки и предоставлять вам подробные данные о видах запросов, которые их вызывают. Более того, вы можете выбрать передачу пользовательских данных вместе с ошибками, чтобы вы могли точно знать, что вызывает проблемы.
Вот некоторые, с которыми я сталкивался в свое время
Других решений пока нет …