首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Lumen 5.2中配置日志旋转

在Lumen 5.2中配置日志旋转
EN

Stack Overflow用户
提问于 2016-02-08 16:16:53
回答 2查看 2.5K关注 0票数 2

我试着在Lumen上配置日志旋转,但是我被卡住了。我知道如何用拉拉维尔来做这件事,但是(再一次)我和Lumen迷路了。

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

代码语言:javascript
复制
$app->configureMonologUsing(function(Monolog\Logger $monolog) use ($app) {
    $monolog->pushHandler(
        new \Monolog\Handler\RotatingFileHandler($app->storagePath().'/logs/lumen.log', 5)
    );
});

我可以看到这个错误:

代码语言:javascript
复制
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

我不明白这意味着什么,我应该怎么做。

有人成功地在流明5.2中旋转了日志吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-11 05:45:52

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

代码语言:javascript
复制
$app->configureMonologUsing(function(Monolog\Logger $monolog) use ($app) {
    return $monolog->pushHandler(
        new \Monolog\Handler\RotatingFileHandler($app->storagePath().'/logs/lumen.log', 5)
    );
});
票数 3
EN

Stack Overflow用户

发布于 2016-04-19 02:03:28

另一个想法:

代码语言:javascript
复制
<?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中:

代码语言:javascript
复制
$app->register(\App\Providers\LogServiceProvider::class);
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35274255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档