Как Laravel удаляет старые файлы журналов - PullRequest
0 голосов
/ 11 марта 2019

Я использую Laravel 5.4. В моем файле config/app.php опция хранения журнала установлена ​​на daily. Таким образом, фреймворк создаст файл ежедневного журнала, например, «laravel-2019-03-11.log». Кроме того, старые файлы журналов будут автоматически удаляться согласно значению по умолчанию или по значению log_max_files в файле config/app.php.

У меня вопрос, где написан код unlink (я пытался найти его в папке vendor, но не повезло)? Кроме того, есть ли способ, где я могу переопределить эту логику по умолчанию. Я хочу вместо удаления этих старых файлов журнала переместить его в другую папку, например log_backup или что-то в этом роде.

Ответы [ 3 ]

1 голос
/ 11 марта 2019

Старые файлы удаляются Monolog\Handler\RotatingFileHandler::rotate.

Я знаю, что вы используете 5.4, но если вы хотите обновить версию до 5.6 (или выше), вы можете воспользоваться новыми функциями ведения журнала. Все, что вам нужно сделать, это добавить новый backup канал регистрации в config/logging.php и включить его в stack. Это, безусловно, самое чистое решение.

Например, чтобы сохранить резервную копию всех журналов critical или выше:

'channels' => [
    'stack' => [
        'driver' => 'stack',
        'channels' => ['daily', 'backup'],
        'ignore_exceptions' => false,
    ],
    'backup' => [
        'driver' => 'single',
        'path' => storage_path('logs/backup.log'),
        'level' => 'critical',
    ],
0 голосов
/ 15 марта 2019

В laravel 5.4 ваш файл журнала автоматически удаляется, потому что, возможно, у вас уже есть 5 файлов журнала на ежедневной основе в вашем каталоге журналов, а log_max_size в laravel 5.4 имеет значение по умолчанию 5, поэтому ваши журналы были удалены автоматически.

0 голосов
/ 11 марта 2019

Вы можете просто создать отдельную команду для периодического перемещения файлов журнала с помощью задания cron.

Вот пример.

переместить файлы в другую папку.

public function moveLogs(){

  File::move( app()->storagePath().'your file name', $your/new/path )

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...