cesargb / php-log-rotation
PHP Class to rotate log files
Installs: 169 713
Dependents: 4
Suggesters: 0
Security: 0
Stars: 15
Watchers: 2
Forks: 7
Open Issues: 2
Requires
- php: ^8.0
Requires (Dev)
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-11-24 17:42:03 UTC
README
This PHP package allows you to rotate a log file and compress it.
Note: If you have the version 1 installed, read this.
Installation
You can install this package via composer using:
composer require cesargb/php-log-rotation
Usage
use Cesargb\Log\Rotation; use Cesargb\Log\Exceptions\RotationFailed; $rotation = new Rotation(); $rotation ->compress() // Optional, compress the file after rotated. Accept level compression argument. ->files(30) // Optional, files are rotated 30 times before being removed. Default 366 ->minSize(1024) // Optional, are rotated when they grow bigger than 1024 bytes. Default 0 ->truncate() // Optional, truncate the original log file in place after creating a copy, instead of moving the old log file. ->then(function ($filenameTarget, $filenameRotated) {}) // Optional, to get filename target and original filename ->catch(function (RotationFailed $exception) {}) // Optional, to catch a exception in rotating ->finally(function ($message, $filenameTarget) {}) // Optional, this method will be called when the process has finished ->rotate('file.log');
Or you can define the options in the constructor
use Cesargb\Log\Rotation; use Cesargb\Log\Exceptions\RotationFailed; $rotation = new Rotation([ 'files' => 1, 'compress' => true, // Set level compression or true to default level. Default false 'min-size' => 10, 'truncate' => false, 'then' => function ($filename) {}, 'catch' => function (RotationFailed $exception) {}, 'finally' => function ($message, $filename) {}, ]); $rotation->rotate('file.log');
Test
Run test with:
composer test
Contributing
Any contributions are welcome.