Скажите кто как подходит к задаче удобного логирования ошибок и сообщений бизнес плана на работающем(в продакшине) проекте?
Задача - чтобы не пропустить ошибки в коде, если возникают.
И знать о некоторых других проблемах, которые можно залогировать, по API, например, не получается достучаться, какая нибудь бизнес ситуация требующая анализа и т.д.
В документации мы читаем:
Пункты 1-2 понятны.Использование Системы логирования Yii включает следующие шаги:
1)Запись сообщений лога в различных частях кода приложения;
2)Настройка целей лога в конфигурации приложения;
3)Изучение отфильтрованных сообщений лога, например, при помощи Отладчика Yii.
Пункт 3 - не совсем.
Отладчик этот на проде будет выключен, да и Отладчик Yii вроде показывает(и ищет в нем) только лог текущего запроса, а не весь лог проекта.
Мне же нужно работать со всем логом проекта.
Чтобы не упустить проблемы, может редкие ситуации, но в которых возникнут проблемы.
Проблема №1. Где физически храним.
Вариант хранения лога в файле (через FileTarget) вызывает такие вопросы:
- как удобно смотреть такой файл? Вариант что на сервер заходить и время от времени его просматривать выглядит не очень интересным, записи повторяются, да там не один файл, а может быть много.
- если парсить как то, но опять файлов много, все это автоматизировать не хотелось бы
В БД хранить выглядит вроде удобней.
Почему то правда по 2 записи делает, но с таким логом уже можно и в GridView поработать, поотмечать что просмотрено, может одинаковые сообщения как то пропускать.
Проблема №2. Как логически организовать.
Как организовать лог логически так, чтобы с ним было удобно работать.
Бизнес лог ведем через Yii::info() с разными категориями.
А Yii::error()/warning() оставляем для уже проблем кодового характера. И тоже тут категории. В доке написано что категории называть по имени метода, пока не понял насколько это удобно.
Может их вообще в разных таблицах БД сохранять.
Плюс лог идет не только от одного приложения, а и от консольного приложения тоже. В схеме таблицы лога, этот момент не учтен.
Если кто уже эту проблему внимательно изучал, поделитесь наблюдениями, может даже какое расширение есть под это.
В общем, смысл должен быть ясен - проект начинает работать и надо не упустить ошибки, и иметь бизнес лог, чтобы понять некоторые запутанные ситуации. Тестов то нет, а в код постоянно вносятся изменения. Недавно вон кое что отвалилось, узнал не сразу... (даже доступ к файлам логов физически не всегда имеется у разработчика).