Heim  >  Artikel  >  PHP-Framework  >  Warum hat das von Laravel generierte Protokoll keine Berechtigung?

Warum hat das von Laravel generierte Protokoll keine Berechtigung?

PHPz
PHPzOriginal
2023-04-12 09:13:41697Durchsuche

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:

  1. Speicherortberechtigungen anpassen

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.

  1. Speicherort für Laravel-Protokolle ändern

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' => [
        // ...
    ],
  1. Erfassen Sie Laravel-Protokolle und speichern Sie sie in der Datenbank.

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:

  • Eine Protokolltabelle in der Datenbank erstellen, um Protokolldaten zu speichern;
  • Die Implementierung der Protokollschnittstelle in der Datei app/Providers/AppServiceProvider.php registrieren;
  • Konfiguration ändern/ Protokollierung. Stellen Sie in der PHP-Datei die Protokolloption auf Datenbank ein. Im ersten Schritt erstellen Sie eine Protokolltabelle .php-Datei
Ändern Sie auf ähnliche Weise die Konfiguration in der Datei config/logging.php und setzen Sie die Protokolloption auf Datenbank:

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;
Die oben genannten drei Methoden können Entwicklern helfen, das Problem zu lösen, dass keine Berechtigungen für von Laravel generierte Protokolldateien vorliegen Mit der dritten Methode können Entwickler auch Anwendungsprotokollinformationen besser verwalten und analysieren.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn