С laravel 5.5 у нас был доступ к методу configureMonologUsing()
в $ app, который позволял делать такие вещи в bootstrap / app.php:
$app->configureMonologUsing(function (Monolog\Logger $monolog) {
$processUser = posix_getpwuid(posix_geteuid());
$processName= $processUser['name'];
$filename = storage_path('logs/laravel-' . php_sapi_name() . '-' . $processName . '.log');
$handler = new Monolog\Handler\RotatingFileHandler($filename);
$monolog->pushHandler($handler);
});
Это полезно, когда ваше приложение может вызываться из разных контекстов (например, CLI / HTTP) с разными пользователями (что желательно) и ротацией файлов. Это предотвращает ошибки записи в случае, если файл журнала был создан пользователем HTTP до того, как пользователь CLI попытается что-то добавить в него, и наоборот.
Обработка этого в противном случае сложна или небезопасна, так как требует установки разрешений на запись для файлов, которые могут еще не существовать.
Кроме того, очень удобно иметь журналы, разделенные контекстами, поскольку они обычно имеют мало общего, и это облегчает поиск среди них.
К сожалению, с laravel 5.6 такой способ работы больше невозможен, и я (пока) не мог найти способ сделать это прозрачно для всех файловых журналов.
Спасибо