如果是这样,怎么办?默认情况下,L4 写入文本文件。我注意到 Monolog 可以在其github页面上登录到数据库。
问问题
8036 次
5 回答
10
是的,您可以创建一个侦听器来记录 routes.php 中的所有内容
Event::listen('laravel.log', function($type,$message)
{
$log = new Log();
$log->message = $message;
$log->type = $type;
$log->update;
});
或者,如果您只想记录错误 400 和 500,Larvavel 在 Routes.php 文件中有一个 Log 事件可以侦听错误 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');
});
于 2013-03-25T10:34:11.510 回答
7
如您进一步阅读标题所见,Monolog 原生支持写入 Redis、MongoDB 和 CouchDB。这三个都支持相当大量的写入(在 Redis 的情况下非常写入)用例。MySQL 不存在,因为记录到 MySQL 并不是世界上最好的主意。
如果您真的想这样做,您可以查看有关创建自己的处理程序的文档,其中解释了如何创建和使用 PDO 处理程序写入 SQL 数据库:https ://github.com/Seldaek/monolog/blob /master/doc/extending.md - 我仍然认为这是一个坏主意,但也许用例需要它。
于 2013-03-24T11:32:34.033 回答
0
在 laravel 5 现在是illuminate.log
现在它会像
Event::listen('illuminate.log', function($type,$message)
{
....
});
于 2017-02-03T11:29:18.690 回答
0
对于那些想知道如何使用 5.6 到 7.x 的 laravel/lumen 的人
- 作曲家需要 wazaari/monolog-mysql
- 编辑文件 config/logging.php 如下
<?php
use MySQLHandler\MySQLHandler;
...
'channels' => [
'stack' => [
'driver' => 'stack',
'channels' => ['daily', 'mysql'],
],
...
'mysql' => [
'driver' => 'monolog',
'level' => 'debug',
'handler' => MySQLHandler::class,
'with' => [
'pdo' => app('db')->connection()->getPdo(),
'table' => 'table-name',
],
]
于 2020-05-12T09:20:59.177 回答