igancev/log

This package is abandoned and no longer maintained. No replacement package was suggested.
There is no license information available for the latest version (1.0.2) of this package.

Composer package by igancev for record log in file, and delete their

1.0.2 2016-04-26 14:50 UTC

This package is not auto-updated.

Last update: 2020-01-24 16:08:51 UTC


README

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

Установка

log доступен на Packagist (igancev/log) и устанавливается через Composer.

$ composer require igancev/log

или

добавлением igancev/log в require section вашего composer.json file:

{
    "require": {
        "igancev/log": "^1.0"
    }
}

Использование

Запись лога в одну строку

(new Igancev\Log\Log('log text'))->setFileDir('/log/path/')->setLifeTime(5)->addLog();

Запись лога с кастомизированными настройками:

  • относительную от корня сайта директорию хранения логов вида "/path/to/dir/" (при отсутствии создается автоматически, по умолчанию "/log/")
  • имя файла (по умолчанию "log")
  • расширение файла (по умолчанию "txt")
  • сортировку записи. Log::SORT_ASC - запись новых данных в конец файла, Log::SORT_DESC - запись новых данных в начало файла (по умолчанию Log::SORT_ASC)
  • время жизни файла в днях (по умолчанию не задано)
  • текст лога

use Igancev\Log\Log;

$log = new Log;

// пример всех настроек
$log
	->setFileDir('/my/auto/creating/dir/')
	->setFileName('myFileName')
	->setFileExt('txt')
	->setSort(Log::SORT_DESC)
	->setLifeTime(10)
	->addText("my log text\n");

// добавление текста к логу по мере надобности 
$log->addText("add more text");

// запись лога в файл
$log->addLog();

Результатом работы будет файл /my/auto/creating/dir/myFileName-dd.mm.yyyy-lifetime-10.txt, где dd.mm.yyyy - текущая дата. Таким образом каждый день будет создаваться новый файл. В течение дня все данные будут записываться в текущий файл в зависимости от указанной сортировки. Содержимое файла:

14:25:19  my log text
add more text

Автоматическое удаление устаревших файлов

Со временем файлы логов, особенно при периодических операциях, накапливаются, занимая драгоценное место на диске. Устанавливая при создании объекта метку lifetime методом $log->setLifeTime($daysCount), мы оставляем тем самым для себя возможность в дальнейшем чистить устаревшие файлы (с истекшим "сроком действия" lifetime), установив на периодическое выполнение (например cron) метод:

use Igancev\Log\LogGarbageCollector;

LogGarbageCollector::clearOld('/path/to/clear/dir', true);
  • первый параметр - путь путь директории для поиска и удаления устаревших файлов
  • второй параметр - рекурсивность. По умолчанию true. При установке в значение false удалит устаревшие файлы только в заданной директории, не производя поиск во вложенных разделах.