ensi / laravel-stdout-logs-helper
laravel stdout logs helper
Installs: 39 592
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 3
Open Issues: 0
Requires
- php: ^8.1
- laravel/framework: ^10.0 || ^11.0
- monolog/monolog: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.2
- nunomaduro/collision: ^6.0 || ^7.0 || ^8.1
- orchestra/testbench: ^7.0 || ^8.0 || ^9.0
- pestphp/pest: ^1.22 || ^2.0
- pestphp/pest-plugin-laravel: ^1.1 || ^2.0
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^1.11
- spaze/phpstan-disallowed-calls: ^2.15
This package is auto-updated.
Last update: 2025-02-24 09:31:42 UTC
README
Package for duplicating laravel logs in stdout
Installation
You can install the package via composer:
composer require ensi/laravel-stdout-logs-helper
Version Compatibility
Laravel logs helper | Monolog | Laravel | PHP |
---|---|---|---|
^0.1.0 | ^2.3 | ^9.0 || ^10.0 || ^11.0 | ^7.3 || ^8.0 |
^0.2.0 | ^2.3 | ^9.0 || ^10.0 || ^11.0 | ^7.3 || ^8.0 |
^0.3.0 | ^2.0 || ^3.0 | ^9.0 || ^10.0 || ^11.0 | ^7.3 || ^8.0 |
^0.4.0 | ^2.0 || ^3.0 | ^9.0 || ^10.0 || ^11.0 | ^8.1 |
^1.0.0 | ^3.0 | ^10.0 || ^11.0 | ^8.1 |
Migrate from 0.4 to 1.0
- Replace namespace
Ensi\LaravelStdoutLogsHelper
toEnsi\LaravelLogsHelper
- Replace method
LaravelStdoutLogsHelper::makeStdoutChannel
toLogsConfigMaker::stdout
- Replace method
LaravelStdoutLogsHelper::makeStackChannel
toLogsConfigMaker::stack
- Replace method
LaravelStdoutLogsHelper::makeDailyChannel
toLogsConfigMaker::daily
Basic usage
LaravelStdoutLogsHelper
In order for the channel to turn into a stack with output to stdout, you must register the stdout_mirror
key in the source config
Example:
return LaravelStdoutLogsHelper::addStdoutStacks([ 'default' => env('LOG_CHANNEL', 'stack'), 'channels' => [ // manual config 'daily_1' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => 'debug', 'days' => 14, 'stdout_mirror' => true, ], // or use our helper 'daily_1' => LogsConfigMaker::daily(storage_path('logs/laravel.log')) ], ]);
Result:
// ... 'channels' => [ 'daily_1:original' => [ 'driver' => 'daily', 'path' => storage_path('logs/laravel.log'), 'level' => 'debug', 'days' => 14, 'stdout_mirror' => true, ], 'daily_1:stdout' => [ 'driver' => 'monolog', 'level' => 'debug', 'handler' => StreamHandler::class, 'with' => [ 'stream' => 'php://stdout', ], ], 'daily_1' => [ 'driver' => 'stack', 'name' => 'daily_1', 'channels' => ['daily_1:original', 'daily_1:stdout'], 'ignore_exceptions' => false, ] ], // ...
DateSizeRotatingFileHandler
For a production environment, it can be important that logs are deleted not by date, but by size.
To set up such rotation, use the DateSizeRotatingFileHandler
class. Setting up a channel in logger.php
Example:
// ... 'channels' => [ 'my:channel' => LogsConfigMaker::dailySize(storage_path('logs/my/channel.log')) ], // ...
To set up size limits (in bytes) use env:
- LOGS_ROTATION_SIZE_ONE_FILE - the limit for one file
- LOGS_ROTATION_SIZE_CHANNEL - the limit for one channel
- LOGS_ROTATION_COUNT_CHANNEL - the limit for the count of files for one channel
- LOGS_ROTATION_SIZE_TOTAL - the limit for sum of all channels with handler
DateSizeRotatingFileHandler::class
For individual channels, you can redefine the limits using the parameter of the dailySize
method.
Contributing
Please see CONTRIBUTING for details.
Testing
- composer install
- composer test
Security Vulnerabilities
Please review our security policy on how to report security vulnerabilities.
License
The MIT License (MIT). Please see License File for more information.