Подтвердить что ты не робот

Как отключить файл журнала Laravel 5?

Мой сайт Laravel 5 работает на общем хосте с 1 ГБ дискового пространства. Но теперь у меня около 100 МБ файла журнала. Как я могу отключить файл журнала в Laravel 5?

4b9b3361

Ответ 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.");
}

Ваш журнал никогда не будет сохранен.