我正在使用以下更改我的日志路径:
\Log::useDailyFiles(...)
但我仍然在/storage/logs/
获得日志条目。我如何只使用我的日志路径?
在引导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中阅读有关日志记录配置的更多信息。
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);
});