Мой сайт Laravel 5 работает на общем хосте с 1 ГБ дискового пространства. Но теперь у меня около 100 МБ файла журнала. Как я могу отключить файл журнала в Laravel 5?
Как отключить файл журнала Laravel 5?
Ответ 1
Если ваш журнал очень велик, либо вы регистрируетесь много, либо ваше приложение бросает много ошибок. Вы должны сначала изучить журнал и посмотреть, можете ли вы сократить записываемые данные.
Вы также можете переключиться на ежедневное ведение журнала, а затем выполнить задание для удаления старых файлов журнала.
Следующее, что нужно сделать, это обновить конфигурацию ведения журнала до ежедневного, а не по умолчанию в config/app.php
Laravel будет ежедневно обрабатывать файл и удалять старые файлы журналов через 5 дней или значение app.max_log_files
, если вам нужно больше хранить.
Ответ 2
Чтобы полностью отключить ведение журнала, вам необходимо перезаписать обработчики журналов по умолчанию, установленные Laravel. Вы можете легко сделать это с помощью
$nullLogger = new NullHandler();
\Log::getMonolog()->setHandlers(array($nullLogger));
Вам нужно позвонить как можно раньше, прежде чем запрос будет обработан, например. вы можете сделать это в своем загрузочном /app.php:
$app->configureMonologUsing(function($monolog) {
$nullLogger = new \Monolog\Handler\NullHandler();
$monolog->setHandlers(array($nullLogger));
});
return $app;
Ответ 3
Максимальные ежедневные файлы журнала
При использовании режима ежедневного журнала Laravel сохраняет только five days
файлов журнала по умолчанию. Если вы хотите отрегулировать количество сохраненных файлов, вы можете добавить значение конфигурации log_max_files
в конфигурационный файл app
:
config → app.php
'log_max_files' => 30
Подробнее: https://laravel.com/docs/5.5/errors
Ответ 4
Я знаю, что это немного старовато, но:
В config/logging.php: в разделе channels
добавьте эти:
'none' => [
'driver' => 'monolog',
'handler' => NullHandler::class,
],
Затем обновите файл .env, чтобы использовать этот регистратор:
LOG_CHANNEL=none
И все должно работать просто отлично.
Ответ 5
Вы можете отключить действие записи. Log:: вызывается, комментируя следующую строку:
Log::useFiles(storage_path().'/logs/laravel.log');
in start/global.php
Но сначала вы должны выяснить, почему ваш файл журнала такой большой? Во-вторых, поможет и функция архива в вашем файле. Может быть, два раза в день.
Надеюсь, это поможет. Удачи!
Ответ 6
Да, окончательно вам нужно отредактировать основной файл laravel, чтобы не сохранять файл журнала.
перейти к vendor- > laravel- > framework- > src- > Illuminate- > Log- > Writer.php а затем закомментируйте весь код внутри функции __call, как показано ниже.
public function __call($method, $parameters)
{
// if (in_array($method, $this->levels))
// {
// call_user_func_array(array($this, 'fireLogEvent'), array_merge(array($method), $parameters));
// $method = 'add'.ucfirst($method);
// return $this->callMonolog($method, $parameters);
// }
// throw new \BadMethodCallException("Method [$method] does not exist.");
}
Ваш журнал никогда не будет сохранен.