galancev/console-log

Console log component

v2.0 2020-01-28 20:56 UTC

This package is auto-updated.

Last update: 2024-09-29 05:36:19 UTC


README

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

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

Инициализация

Инициализация в общем случае класса простая:

$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() {});