Можно ли сделать логирование всех mysql запросов чтоб подневно создавались файлы логов?

Да, в Laravel вы можете легко настроить логирование всех MySQL запросов и создание файлов логов по дням. Для этого вы можете воспользоваться встроенной системой логирования Laravel и настроить соответствующий канал.

1. Настройка драйвера логирования:

Откройте файл config/logging.php в вашем проекте Laravel. В этом файле вы найдете массив, определяющий доступные каналы логирования. Добавьте новый канал со следующими параметрами:

'mysql' => [
    'driver' => 'daily',
    'path' => storage_path('logs/mysql/mysql.log'),
    'level' => 'debug',
    'days' => 7,
],

Этот код создает новый канал mysql, который будет создавать новый файл логов каждый день и хранить их в папке storage/logs/mysql. Файлы логов хранятся в течение 7 дней.

2. Настройка базы данных:

Откройте файл .env в корне вашего проекта Laravel и настройте соединение с базой данных. Убедитесь, что вы указали правильные учетные данные для вашей MySQL базы данных.

3. Включение логирования запросов:

Откройте файл config/database.php и настройте ваше соединение с базой данных для записи SQL запросов в логи:

'connections' => [
    'mysql' => [
        'driver' => 'mysql',
        'host' => env('DB_HOST', '127.0.0.1'),
        'port' => env('DB_PORT', '3306'),
        'database' => env('DB_DATABASE', 'forge'),
        'username' => env('DB_USERNAME', 'forge'),
        'password' => env('DB_PASSWORD', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => true,
        'engine' => null,
        'options' => [
            PDO::ATTR_EMULATE_PREPARES => true,
            PDO::ATTR_STRINGIFY_FETCHES => false,
            PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        ],
        'dump' => [
            'dump_command_path' => env('DUMP_COMMAND_PATH', 'C:xamppmysqlbinmysqldump'),
        ],
        'logging' => true, // Включаем логирование
    ],
],

4. Использование логирования:

Теперь, каждый раз, когда вы используете Eloquent или Query Builder для выполнения запроса к базе данных, эти запросы будут записываться в файл логов, который мы настроили на первом шаге. Код, выполняющий запросы, может выглядеть примерно так:

namespace AppHttpControllers;

use IlluminateHttpRequest;
use IlluminateSupportFacadesDB;
use AppHttpControllersController;

class UserController extends Controller
{
    public function index()
    {
        $users = DB::table('users')->get();

        return view('user.index', ['users' => $users]);
    }
}

5. Просмотр логов:

Теперь вы можете просмотреть логи запросов, выполнив следующую команду:

tail -f storage/logs/mysql/mysql.log

Эта команда открыла файл логов и будет продолжать выводить новые строки логов по мере их добавления.

Таким образом, вы настроили логирование всех MySQL запросов в Laravel, которое создает файлы логов каждый день.