accentinteractive / laravel-logcleaner
保持您的Laravel日志小巧整洁。
v1.5.0
2024-08-22 07:41 UTC
Requires
- php: ^7.3|^8.0
- illuminate/console: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/filesystem: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
- illuminate/support: ^6.0|^7.0|^8.0|^9.0|^10.0|^11.0
Requires (Dev)
- orchestra/testbench: 4.*|5.*|6.*|^7.0|^8.0|^9.0
- phpunit/phpunit: ^10.0
This package is auto-updated.
Last update: 2024-09-22 07:48:14 UTC
README
日志可能会变得非常庞大。此包有助于节省服务器空间并保持您的Laravel日志文件小巧。
- 将每日日志修剪到指定行数,以防止其变得过大。
- 删除旧日志,只保留指定数量的最新日志文件。
-
自1.3.0版本起支持Laravel 11。
-
自1.2.0版本起支持Laravel 10。
-
自1.1.0版本起支持Laravel 9。
-
之前的版本支持Laravel 6、7、8。
安装
您可以通过composer安装此包
composer require accentinteractive/laravel-logcleaner
可选,您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Accentinteractive\LaravelLogcleaner\LaravelLogcleanerServiceProvider" --tag="config"
使用方法
您可以从命令行使用logcleaner:run
或将它设置为cron作业。
命令行使用;
// Get info about the command and options php artisan logcleaner:run --help // Trim big log files and delete old log files php artisan logcleaner:run // Pass the number of lines to keep when trimming log files. Overrides the config setting. // This overrides the default set in config php artisan logcleaner:run --keeplines=10000 // Pass the number of files to keep when deleting old log files. Overrides the config setting. // This overrides the default set in config php artisan logcleaner:run --keepfiles=7 // Run without actually cleaning any logs php artisan logcleaner:run --dry-run
cron作业使用,将其添加到App\Console\Kernel
protected function schedule(Schedule $schedule) { $schedule->command('logcleaner:run')->daily()->at('01:00'); }
当然,您也可以在定义cron作业时传递选项。
protected function schedule(Schedule $schedule) { $schedule->command('logcleaner:run', ['--keeplines' => 5000, '--keepfiles' => 14])->daily()->at('01:00'); }
子文件夹处理
从1.4.0版本开始,将处理子文件夹中的文件。
- 修剪:修剪子文件夹中的所有文件。
- 删除:在每个子文件夹中,删除除最新的N个文件之外的所有文件。其中N等于配置中的
logcleaner.log_files_to_keep
。 - 默认情况下,将子文件夹的处理设置为true,但可以通过
env('LOGCLEANER_PROCESS_SUBFOLDERS')
进行覆盖。
环境变量
您可以在.env文件中设置以下环境变量
LOGCLEANER_LOG_PATH
: 从应用程序的根路径开始的日志文件的路径。如果您不提供LOGCLEANER_LOG_PATH
,则将使用默认的Laravel日志路径。示例值:storage/custom_logs
。LOGCLEANER_TRIMMING_ENABLED
: 是否修剪日志文件到一定行数。如果没有在.env中设置,默认为true
。LOGCLEANER_LOG_LINES_TO_KEEP
: 修剪文件时要保留的行数。如果没有在.env中设置,默认为20000
。LOGCLEANER_DELETING_ENABLED
: 是否删除旧日志文件。如果没有在.env中设置,默认为true
。LOGCLEANER_LOG_FILES_TO_KEEP
: 删除旧日志文件时要保留的文件数。如果没有在.env中设置,默认为30
。LOGCLEANER_PROCESS_SUBFOLDERS
: 是否处理日志路径中的子文件夹中的文件。如果没有在.env中设置,默认为true
。
配置设置
您可以通过传递配置设置来修改行为。
logcleaner.log_files_to_keep
: 删除旧日志文件时要保留的日志文件数。此配置设置由选项--keepfiles
覆盖。logcleaner.log_lines_to_keep
: 修剪日志文件时要保留的行数。此配置设置由选项--keeplines
覆盖。logcleaner.exclude
: 要排除处理的文件名的数组,使用通配符。logcleaner.trimming_enabled
: 启用日志文件修剪。默认为true
。logcleaner.deleting_enabled
: 启用旧日志文件删除。默认为true
。logcleaner.process_subfolders
: 是否包含子文件夹中的文件。默认为true
。
您也可以直接传递选项。
--keeplines=2000
--keepfiles=7
--dry-run
测试
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过电子邮件发送至 joost@accentinteractive.nl,而不是使用问题跟踪器。
致谢
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。