Im Entwicklungsprozess mit dem Laravel-Framework treten zwangsläufig verschiedene Fehler oder Ausnahmen auf. Die schnelle Behebung von Fehlern und die Lösung von Problemen ist eine Herausforderung für Basisentwickler. Dieser Artikel stellt Ihnen die Fehlerbehebungsmethoden für Laravel-Fehler vor und hilft Ihnen, während des Entwicklungsprozesses mit halbem Aufwand das doppelte Ergebnis zu erzielen.
1. Protokollierung
Laravel zeichnet Protokollinformationen in verschiedenen Dateien entsprechend den verschiedenen Ebenen (Debug, Info, Hinweis, Warnung, Fehler, kritisch, Warnung, Notfall) auf. Mithilfe der Protokolldateien können wir Fehler im Code schnell finden.
1.1 Sehen Sie sich die Protokolldatei an
Öffnen Sie das Verzeichnis storage/logs im Projektstammverzeichnis und Sie können die Datei laravel.log sehen. Dies ist die gesamte Protokolldatei von Alle Protokollebenen im System können Sie in der Datei config/logging.php konfigurieren. In der Protokolldatei können Sie filtern und anzeigen Fehlerinformationen basierend auf Zeit, Prozess, Füllstand und anderen Bedingungen. Die spezifische Verwendung ist wie folgt:
tail -f storage/logs/laravel.log // 监控最新的日志内容,按Ctrl+C停止 cat storage/logs/laravel.log | grep '关键字' // 搜索包含"关键字"的日志内容 tail -n 100 storage/logs/laravel.log | grep '关键字' // 查看最后100行日志是否包含"关键字"
1.2 Level-Einstellung
Über das Verzeichnis app/Exceptions/Handler.php, das mit Laravel geliefert wird, können Sie die Protokollebene sehen wird in report () festgelegt. Im ersten Parameter der Funktion ist Laravels Standardprotokollstufe „Fehler“, was bedeutet, dass nur Protokolle mit Fehlerstufe und höher in der Protokolldatei app/public/storage/logs/laravel.log aufgezeichnet werden.
Wenn Sie Protokolle aller Warnstufen und höher in die Protokolldatei schreiben möchten, können Sie die Startstufe im ersten Parameter der Funktion report() hinzufügen, wie unten gezeigt:
public function report(Exception $exception) { if ($this->shouldReport($exception)) { Log::channel('daily')->warning('遇到错误啦!', [ 'error' => $exception->getMessage() ]); } parent::report($exception); }
Durch die Operation Log::channel('daily')->warning() werden die Fehlerinformationen und die Fehlerstufe in das Protokoll geschrieben, und die Methode ShouldReport() wird verwendet, um zu bestimmen, ob das Protokoll erstellt werden muss geschrieben.
2. Ausnahmebehandlung
In Laravel-Anwendungen ist die Möglichkeit, benutzerdefinierte Ausnahmen auszulösen, sehr einfach. Gehen Sie einfach wie folgt vor:
#🎜🎜 #2.1 Benutzerdefinierte Ausnahme Erstellen Sie eine neue Ausnahmeklasse und erben Sie die Standard-Ausnahmeklasse von Laravel, wie unten gezeigt:namespace AppExceptions; use Exception; class CustomException extends Exception { public function __construct($message = null, $code = 0) { parent::__construct($message, $code); // 调用父类的构造方法 } public function report() { // 记录错误日志 Log::error('CustomException:'.$this->getMessage()); } public function render($request) { return response()->json(['message' => $this->getMessage()], Response::HTTP_INTERNAL_SERVER_ERROR); } }
public function test(Request $request) { // ... if (! check_validate($request->all())) { throw new CustomException('请求参数不正确'); } }
Route::get('/test', function () { dump('Hello Laravel!'); return response()->json(['key' => 'value']); }); Route::get('/test2', function () { $array = ['key_one' => 'value_one', 'key_two' => 'value_two']; dd($array); return response()->json(['key' => 'value']); });
Das obige ist der detaillierte Inhalt vonSo beheben Sie Laravel-Fehler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!