如何将 laravel 日志文件数据存储到数据库中(5.5)[关闭]
Posted
技术标签:
【中文标题】如何将 laravel 日志文件数据存储到数据库中(5.5)[关闭]【英文标题】:How to store laravel log file data into database(5.5) [closed] 【发布时间】:2019-11-01 08:06:25 【问题描述】:我需要将 Laravel 日志存储到我的数据库中。你能帮帮我吗?
【问题讨论】:
【参考方案1】:转到 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' ];
【讨论】:
【参考方案2】: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
.
【讨论】:
但这只在 laravel 5.6+ 中支持以上是关于如何将 laravel 日志文件数据存储到数据库中(5.5)[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
使用 Laravel 5.0 存储门面将元数据、标头(Expires、CacheControl)添加到上传到 Amazon S3 的文件中