【问题标题】:Configuring log rotate in Lumen 5.2在 Lumen 5.2 中配置日志轮换
【发布时间】:2016-05-18 09:18:28
【问题描述】:

我尝试在 Lumen 上配置日志轮换,但我卡住了。我知道如何使用 Laravel 做到这一点,但是(再一次)我迷失了 Lumen。

我试图在app/bootstrap.php 中添加这个,因为我在某处读到它:

$app->configureMonologUsing(function(Monolog\Logger $monolog) use ($app) {
    $monolog->pushHandler(
        new \Monolog\Handler\RotatingFileHandler($app->storagePath().'/logs/lumen.log', 5)
    );
});

我可以看到这个错误:

Fatal error:  Uncaught Error: Call to a member function error() on null in /x/vendor/laravel/lumen-framework/src/Exceptions/Handler.php:36
Stack trace:
#0 /x/app/Exceptions/Handler.php(36): Laravel\Lumen\Exceptions\Handler->report(Object(Symfony\Component\Debug\Exception\FatalThrowableError))
#1 /x/vendor/laravel/lumen-framework/src/Concerns/RegistersExceptionHandlers.php(123): App\Exceptions\Handler->report(Object(Symfony\Component\Debug\Exception\FatalThrowableError))
#2 /x/vendor/laravel/lumen-framework/src/Concerns/RegistersExceptionHandlers.php(51): Laravel\Lumen\Application->handleUncaughtException(Object(Symfony\Component\Debug\Exception\FatalThrowableError))
#3 [internal function]: Laravel\Lumen\Application->Laravel\Lumen\Concerns\{closure}(Object(Error))
#4 {main}
  thrown in /x/vendor/laravel/lumen-framework/src/Exceptions/Handler.php on line 36

我不明白这是什么意思,我应该怎么做。

有人成功轮流登录lumen 5.2吗?

【问题讨论】:

    标签: php laravel lumen lumen-5.2


    【解决方案1】:

    另一个想法:

    <?php
    
    namespace App\Providers;
    
    use Illuminate\Support\ServiceProvider;
    use Monolog\Formatter\LineFormatter;
    use Monolog\Handler\RotatingFileHandler;
    
    class LogServiceProvider extends ServiceProvider
    {
        /**
         * Configure logging on boot.
         *
         * @return void
         */
        public function boot()
        {
            $maxFiles = 7;
    
            $handlers[] = (new RotatingFileHandler(storage_path('logs/lumen.log'), $maxFiles))
                ->setFormatter(new LineFormatter(null, null, true, true));
    
            $this->app['log']->setHandlers($handlers);
        }
    
        /**
         * Register the log service.
         *
         * @return void
         */
        public function register()
        {
            // Log binding already registered in vendor/laravel/lumen-framework/src/Application.php.
        }
    }
    

    然后别忘了将服务提供者添加到你的 Lumen bootstrap/app.php 中:

    $app->register(\App\Providers\LogServiceProvider::class);
    

    【讨论】:

      【解决方案2】:

      忘记返回对象,它应该是:

      $app->configureMonologUsing(function(Monolog\Logger $monolog) use ($app) {
          return $monolog->pushHandler(
              new \Monolog\Handler\RotatingFileHandler($app->storagePath().'/logs/lumen.log', 5)
          );
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-20
        • 1970-01-01
        • 2021-11-15
        • 1970-01-01
        • 2018-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多