【发布时间】:2019-11-01 08:06:25
【问题描述】:
我需要将 Laravel 日志存储到我的数据库中。你能帮帮我吗?
【问题讨论】:
我需要将 Laravel 日志存储到我的数据库中。你能帮帮我吗?
【问题讨论】:
转到 App/Exceptions/Handler.php 然后在 report() 函数中编写以下代码并将您的模型定义为 ErrorLog
$data = [
'id' => $this->createUniversalUniqueIdentifier(),
'file' => $exception->getFile(),
'line' => $exception->getLine(),
'message' => $exception->getMessage(),
'trace' => $exception->getTraceAsString(),
];
$dataArr =['id' => $data['id'],
'file' => $data['file'],
'error_summary' => 'Line '.$data['line'].' '.$data['message'],
'log_trace' => $data['trace']
];
ErrorLog::create($dataArr);
你的模型文件应该是这样的 错误日志.php 受保护的 $table = '日志'; 受保护的 $fillable = ['ID', '文件', 'error_summary', 'log_trace' ];
【讨论】:
Laravel supports Monolog 用于处理日志。 Monolog 支持许多不同的处理程序,包括像MongoDB handler 这样的数据库处理程序。
您可以通过在config/logging.php 文件中的channels 数组中添加一个新通道来使用 MongoDB 处理程序,例如:
'channels' => [
'mongolog' => [
'driver' => 'monolog',
'handler' => Monolog\Handler\MongoDBHandler::class,
'with' => [
'database' => 'mongo-database-name',
'collection' => 'log-collection-name',
],
],
然后您可以在.env 文件中将默认日志通道设置为mongolog,例如LOG_CHANNEL=mongolog.
【讨论】: