我需要将Laravel日志存储到数据库中。你能帮我吗?
答案 0 :(得分:0)
Laravel supports Monolog用于处理日志。 Monolog支持许多不同的处理程序,包括MongoDB handler之类的数据库处理程序。
您可以通过在forEach()
文件中的channels
数组中添加新通道来使用MongoDB处理程序,例如:
config/logging.php
然后,您可以在'channels' => [
'mongolog' => [
'driver' => 'monolog',
'handler' => Monolog\Handler\MongoDBHandler::class,
'with' => [
'database' => 'mongo-database-name',
'collection' => 'log-collection-name',
],
],
文件中将默认日志通道设置为mongolog
,例如.env
。
答案 1 :(得分:0)
转到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);
您的模型文件应该是这样的 ErrorLog.php 保护$ table ='日志'; 受保护的$ fillable = ['ID', '文件', 'error_summary', 'log_trace' ];