Если да, то как это можно сделать? По умолчанию L4 записывает в текстовый файл. Я замечаю, что Monolog может записывать в базу данных на странице github.
Может ли Laravel 4 регистрироваться в базе данных MySQL?
Ответ 1
Да, вы могли бы создать слушателя, чтобы записывать все в 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');
});
Ответ 2
Как вы можете видеть, читаете ли вы дальше заголовок, Monolog изначально поддерживает запись в Redis, MongoDB и CouchDB. Эти трое все поддерживают довольно громкие записи (и очень тяжелые записи в случае Redis). MySQL не существует, поскольку регистрация в MySQL на самом деле не самая лучшая идея в мире.
Если вы действительно хотите это сделать, вы можете проверить документы на создание собственного обработчика, в котором объясняется, как создавать и использовать обработчик PDO для записи в базу данных SQL: https://github.com/Seldaek/monolog/blob/master/doc/extending.md - Я все еще думаю, что это плохая идея, но, возможно, это оправдано.
Ответ 3
Поскольку у меня был такой же спрос в моем проекте, я создал обработчик для Монолога, чтобы написать вывод журнала в MySQL. Он выдается под лицензией MIT и доступен через композитор или непосредственно на GitHub. Возможно, стоит попробовать.
Ответ 4
В laravel 5 теперь это illuminate.log
Теперь это будет как
Event::listen('illuminate.log', function($type,$message)
{
....
});