【问题标题】:Limit laravel log file size限制 laravel 日志文件大小
【发布时间】:2021-08-10 10:35:23
【问题描述】:

我是 Laravel 的新手,我们使用的是 Laravel 5.8,我看到过日志设置为每日轮换,但仍然达到 1gb+ 的恐怖故事(我看到有人一夜之间的日志超过 400gb)。有没有办法拆分日志文件和/限制可以创建的总日志大小,这样我就不会用完我的整个服务器存储并使其无用。

除了创建一个 cron 作业或在这种情况下我不喜欢的东西之外,我已经查看了所有内容,没有发现任何这样做的东西。提前致谢。

【问题讨论】:

  • 感谢@Hossein.Kiani,我已经进行了每日日志轮换。问题是如果每日日志很大,是否有可能获得最大文件大小?
  • 你试过这个配置:config/app.php 文件中的 log_max_files 吗?
  • 这将限制日志显示的天数,而不是日志大小。

标签: php laravel laravel-5.8


【解决方案1】:

这可以通过自定义日志中间件来完成,该中间件会检查文件大小并进行相应的更改。

我在网上找到的,你可以参考一下。

https://gist.github.com/catzie/5511fb4ba0d0e386fd7d77209c9f004f

https://laravel.com/docs/8.x/middleware

【讨论】:

    【解决方案2】:

    在Linux中,有一个名为logrotate的概念,它可以根据日期或大小管理任何日志文件。 我认为在 Laravel 中根据大小管理日志文件,logrotate 是一个可以接受的选择。 欲了解更多信息: Link1 Link2

    样本:

    1. 为您的应用程序创建一个文件: sudo touch /etc/logrotate.d/yourappname

    2. yourappname 文件的内容类似于:

       
    
    <your-project-directory-absolute-path>/storage/logs/*.log {
            size 10k
            missingok
            rotate 7
            compress
            notifempty
            create 0644  www-data  www-data
            su www-data www-data
       }
    
    

    【讨论】:

      【解决方案3】:

      你试试这个

      $filePath = storage_path() . '/logs/laravel.log'; 
      $bakFilePath = storage_path() . '/logs/laravel.log.bak';
      $maxFileSize = 11000000;
      $shrinkedFileSize = 10000000;
       
      $success = shrinkFile($filePath, $bakFilePath, $maxFileSize, $shrinkedFileSize);
      

      也可以关注此url 以获得更多帮助

      好的,现在可以自动删除此文件。您只需要更新 laravel,并将其添加到您的 config/app.php 文件中:

      'log_max_files' => 30
      

      在 Laravel 上你可以找到 config/logging.php 文件:

      'daily' => [
          'driver' => 'daily',
          'path' => storage_path('logs/laravel.log'),
          'level' => 'debug',
          'days' => 30, // 0 for unilimitted logs
      ],
      

      设置自动删除日志文件的天数。

      【讨论】:

        猜你喜欢
        • 2012-07-22
        • 2010-12-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-14
        • 2021-12-17
        • 1970-01-01
        相关资源
        最近更新 更多