Если да, то как это можно сделать? По умолчанию L4 записывает в текстовый файл. Я замечаю, что Monolog может записывать в базу данных на своей странице github .
Да, вы могли бы создать слушателя для регистрации всего в route.php
Event::listen('laravel.log', function($type,$message) { $log = new Log(); $log->message = $message; $log->type = $type; $log->update; });
Или, альтернативно, если вы хотите только регистрировать ошибки 400 и 500 Larvavel, в файле Routes.php есть событие журнала, которое слушает ошибки 404 и 500, вы можете написать свой собственный код в этом прослушивателе событий. Предположим, что у вас есть модель с именем Log,
Event::listen('404', function() { $error = "404: " . URL::full(); Log::error($error); $update = new Log(); $update->error = $error; $update->update; return Response::error('404'); }); Event::listen('500', function() { Log::error($error); $update = new Log(); $update->error = $error; $update->update; return Response::error('500'); });
Как вы можете видеть, читаете ли вы заголовок, Monolog изначально поддерживает запись в Redis, MongoDB и CouchDB. Эти трое все поддерживают довольно громкие записи (и очень тяжелые записи в случае Redis). MySQL не существует, поскольку регистрация в MySQL на самом деле не самая лучшая идея в мире.
Если вы действительно хотите это сделать, вы можете проверить документы на создание собственного обработчика, в котором объясняется, как создавать и использовать обработчик PDO для записи в базу данных SQL: https://github.com/Seldaek/monolog/blob /master/doc/extending.md – Я все еще думаю, что это плохая идея, но, возможно, это оправдано.
Поскольку у меня был такой же спрос в моем проекте, я создал обработчик для Монолога для записи вывода журнала в MySQL. Он выпущен под лицензией MIT и доступен через композитора или непосредственно на GitHub . Можно попробовать.
В laravel 5 теперь он illuminate.log
Теперь это будет похоже на
Event::listen('illuminate.log', function($type,$message) { .... });