任何人都知道如何将错误消息发送到从app / exceptions / handler.php生成的laravel数据库中吗?
我需要将在report()方法中生成的错误消息发送到数据库。
答案 0 :(得分:1)
由于Laravel uses Monolog用于处理日志,因此看来写Monolog Handler是最干净的方法。
我能够找到已经存在的东西,请查看monolog-mysql package。我没有使用它,所以我不知道它是否有效以及是否有效,但这绝对是一个很好的起点。
答案 1 :(得分:0)
如果您有兴趣手动执行此操作,则可以执行以下操作。
第1步- 创建一个模型来存储具有如下数据库结构的错误。
class Error extends Model
{
protected $fillable = ['user_id' , 'code' , 'file' , 'line' , 'message' , 'trace' ];
}
第2步 找到App / Exceptions / Handler.php文件,包括Auth和您创建的Error模型。并用以下代码替换报告功能。
public function report(Exception $exception) { // Checks if a user has logged in to the system, so the error will be recorded with the user id $userId = 0; if (Auth::user()) { $userId = Auth::user()->id; } $data = array( 'user_id' => $userId, 'code' => $exception->getCode(), 'file' => $exception->getFile(), 'line' => $exception->getLine(), 'message' => $exception->getMessage(), 'trace' => $exception->getTraceAsString(), ); Error::create($data); parent::report($exception); }
(我正在使用laravel 5.6进行演示)