Laravel更改日志路径

时间:2016-04-01 09:44:22

标签: laravel

我正在使用以下更改我的日志路径:

\Log::useDailyFiles(...)

但我仍然在/storage/logs/中获取日志条目。我怎样才能仅使用我的日志路径?

2 个答案:

答案 0 :(得分:3)

Laravel在引导ConfigureLogging类时已经注册了记录器的实例。因此,当您使用Log::useDailyFiles()时,您只是添加了一个额外的日志处理程序,这就是您在标准storage/logs/laravel.log中获取日志条目的原因。

要覆盖默认日志处理程序,Laravel会在应用程序实例上提供configureMonologUsing方法。因此,在bootstrap/app.php语句之前的return $app;文件中,添加以下内容:

$app->configureMonologUsing(function($monolog) use ($app) {
    $monolog->pushHandler(
        (new Monolog\Handler\RotatingFileHandler(
            // Set the log path
            '/custom/path/to/custom.log',
            // Set the number of daily files you want to keep
            $app->make('config')->get('app.log_max_files', 5)
        ))->setFormatter(new Monolog\Formatter\LineFormatter(null, null, true, true))
    );
});

传递给RotatingFileHandler的第二个参数尝试从log_max_files获取config/app.php的配置值,以确定它应保留多少每日日志文件,如果找不到一个默认为5。如果您想保留无限数量的每日日志文件,请改为通过0

您可以在Laravel Documentation中了解有关记录配置的更多信息。

答案 1 :(得分:0)

  

Laravel 5:bootstrap / app.php

自定义每日日志:

     $app->configureMonologUsing(function($monolog) use ($app) {
         $monolog->pushHandler(
             (new Monolog\Handler\RotatingFileHandler(
                 // Set the log path
                 $app->storagePath().'/logs/app_error.log',
                 // Set the number of daily files you want to keep
                 $app->make('config')->get('app.log_max_files', 30)
             ))->setFormatter(new Monolog\Formatter\LineFormatter(null, null, true, true))
         );
     });

单条记录:

    $app->configureMonologUsing(function($monolog) use ($app) {
        $handler = new Monolog\Handler\StreamHandler($app->storagePath().'/logs/app_error.log');
        $handler->setFormatter(new \Monolog\Formatter\LineFormatter(null, null, true, true));
        $monolog->pushHandler($handler);
    });