Laravel更改日志路径

问题描述 投票:1回答:2

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

\Log::useDailyFiles(...)

但我仍然在/storage/logs/获得日志条目。我如何只使用我的日志路径?

laravel
2个回答
3
投票

在引导ConfigureLogging类时,Laravel已经注册了记录器的实例。因此,当您使用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中阅读有关日志记录配置的更多信息。


0
投票

Laravel 5:bootstrap / app.php

CUSTOM DAILY LOG :

     $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))
         );
     });

SINGLE LOG :

    $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);
    });
© www.soinside.com 2019 - 2024. All rights reserved.