Laravel ist ein weit verbreitetes PHP-Framework, das umfangreiche Funktionen und Tools bietet, mit denen Entwickler schnell sichere, zuverlässige und einfach zu wartende Webanwendungen erstellen können. Mit der integrierten Protokollierungsfunktion von Laravel können Entwickler Anwendungsprotokolle zur Analyse und Fehlerbehebung in Dateien speichern. In einigen Fällen kann es jedoch vorkommen, dass die von Laravel generierten Protokolldateien auf Berechtigungsprobleme stoßen und nicht ordnungsgemäß ausgegeben werden.
Der Grund, warum Laravel Protokolldateien ohne Erlaubnis generiert, liegt darin, dass die Berechtigungen des Dateispeicherorts nicht ausreichen. Um dieses Problem zu lösen, können wir die folgenden Methoden verwenden:
Standardmäßig werden Laravel-Protokolldateien im Verzeichnis storage/logs gespeichert. Wir müssen sicherstellen, dass die Berechtigungen für das Verzeichnis ausreichen, damit der PHP-Prozess aus dem Verzeichnis schreiben und lesen kann. Sie können den folgenden Befehl im Terminal ausführen, um die Berechtigungen des Verzeichnisses festzulegen:
chmod -R 775 storage/logs
Die Berechtigungseinstellung 775 ermöglicht es dem Eigentümer und den Gruppenbenutzern, das Verzeichnis zu lesen, zu schreiben und auszuführen, während andere Benutzer nur lesen und ausführen können.
Wenn wir den Standardspeicherort nicht verwenden möchten, können wir den Speicherort über die Konfigurationsdatei ändern. Öffnen Sie die Datei config/logging.php, suchen Sie die Pfadoption im Protokoll und ändern Sie sie in den angegebenen Speicherpfad.
'log' => env('APP_LOG', 'single'), 'path' => '/your/folder/path/logs/laravel.log', 'level' => env('LOG_LEVEL', 'debug'), 'channels' => [ // ... ],
Wir können Laravel-Protokolle erfassen und in der Datenbank statt in Dateien speichern. Mit dieser Methode können Dateiberechtigungsprobleme vermieden und Protokollanalysen und Statistiken erleichtert werden.
Wir müssen die folgenden Vorgänge ausführen:
CREATE TABLE `logs` ( `id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, `channel` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `level` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `message` text COLLATE utf8mb4_unicode_ci NOT NULL, `context` text COLLATE utf8mb4_unicode_ci NOT NULL, `extra` text COLLATE utf8mb4_unicode_ci NOT NULL, `created_at` datetime(6) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
Das obige ist der detaillierte Inhalt vonWarum hat das von Laravel generierte Protokoll keine Berechtigung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!