Простой класс для вывода в консоль всякой информации, преимущественно разными роботами, запускаемыми через кронтаб.
Позволяет буферизировать вывод пока не произошло никаких ошибок, что даёт возможность получать письма по кронтабу только в случае проблем. Позволяет в консоль выводить цветовые метки, которые не будут видны в случае вывода в файл. Позволяет выводить дату и время около каждого события. Позволяет дампить переменные.
Инициализация
Инициализация в общем случае класса простая:
$log = new ConsoleLog();Вывести текст:
Вывести обычный текст в консоли стандартным шрифтом можно таким методом:
$log->text('Вывести текст');Результат:
[13-11-2018 12:44:39] Вывести текстВывести ошибку:
Ошибка будет выведена с меткой красного цвета, если это не будет отключено в настройках класса.
$log->error('Ошибка!');Результат:
[13-11-2018 12:47:10] ERROR Ошибка!
Вывести варнинг:
Варнинг будет выведен с меткой жёлтого цвета, если это не будет отключено в настройках класса.
$log->warning('Внимание!');Результат:
[13-11-2018 12:47:10] WARNING Внимание!
Вывести сообщение об успехе:
Сообщение об успехе будет выдедено с меткой зелёного цвета, если это не будет отключено в настройках класса.
$log->success('Успех :)');Результат:
[13-11-2018 12:47:10] SUCCESS Успех :)
Вывести дамп переменной:
Дамп будет выведен с меткой белого цвета, если это не будет отключено в настройках класса.
$log->dump($log);Результат:
DUMP
Component\ConsoleLog::__set_state(array(
'useTimestamps' => true,
'timeFormat' => 'd-m-Y H:i:s',
'echoLabels' => true,
'output' => '',
'outputForErrors' => '',
'outputToConsole' => true,
'outputOnlyIfError' => false,
'outputToBuffer' => false,
))
Настройки
Отключить вывод цветных меток:
$log->setShowLabels(false);Отключить вывод временных меток:
$log->setUseTimestamps(false);Изменить формат временных меток:
$log->setTimeFormat('d-m-Y H:i:s');Отключить вывод в консоль (дампы будут выводиться по-прежнему):
$log->setOutputToConsole(false);Отключить вывод в буфер. Это ускоряет работу робота в случае огромного количества вывода в консоль и не тратит память на буферизацию вывода.
$log->setOutputToBuffer(false);Выводить лог, только если в процессе были ошибки. Работает только если не отключена буферизация вывода.
$log->setOutputOnlyIfError(true);Очистить буфер:
$log->clear();Получить буфер:
$log->get();Сохранить буфер в файл (параметры: имя файла и добавлять ли буфер в конец файла):
$log->save('filename.txt', true);Установить коллбек для добавления записи в лог (например для дальнешнего вывода в файл или базу):
$log->setLogCallback(function() {});