accentinteractive/laravel-logcleaner

保持您的Laravel日志小巧整洁。

v1.5.0 2024-08-22 07:41 UTC

This package is auto-updated.

Last update: 2024-09-22 07:48:14 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

日志可能会变得非常庞大。此包有助于节省服务器空间并保持您的Laravel日志文件小巧。

  1. 将每日日志修剪到指定行数,以防止其变得过大。
  2. 删除旧日志,只保留指定数量的最新日志文件。
  • 自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)。有关更多信息,请参阅 许可证文件