module CliApplication::Log

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

Поэтому в CliApplication добавляются функции логгирования работы приложения. Практика показывет, что полные логи никто не изучает (трудоемко), поэтому логгирование осуществляется только для последнего запуска скрипта.

При этом, функции логгирования делают следующее: 1. Уже на этапе девелопмента предупреждают о ситуации, если запись лог-файлов будет ограничена по причине прав. Это дает гарантию того, что при запуске из под крона данные будут гарантированно записываться в файл. 2. Записывают информацию о старте приложения. Если есть блок старта приложения, и ничего больше - где-то произошел “вылет” приложения. 3. Дает возможность записи пользовательских сообщений (например, для отладки или контроля исполнения) 4. Пишет финальную часть - время исполнения, результат, занятую память.

Помимо файла, запись также возможна в базу данных, что дает возможность удаленно мониторить исполнение скриптов

Настройка логгирования

Для настройки логгирования необходимо создать секцию cli/log в конфигурационном файле. Формат секции определяется значением type. Например:

cli:
  log:
    type: none
cli:
  log:
    type: file
    location: <folder>
cli:
  log:
    type: database
    database: <имя секции cli/database>

Логгирование в файл

Логгирование в базу данных