Laravel은 개발자가 안전하고 안정적이며 유지 관리가 쉬운 웹 애플리케이션을 신속하게 구축할 수 있도록 풍부한 기능과 도구를 제공하는 널리 사용되는 PHP 프레임워크입니다. Laravel에 내장된 로깅 기능을 통해 개발자는 분석 및 문제 해결을 위해 애플리케이션 실행 로그를 파일에 저장할 수 있습니다. 그러나 경우에 따라 Laravel에서 생성된 로그 파일에 권한 문제가 발생하여 제대로 출력되지 않을 수 있습니다.
라라벨이 권한 없이 로그 파일을 생성하는 이유는 파일 저장 위치에 대한 권한이 부족하기 때문입니다. 이 문제를 해결하기 위해 다음 방법을 사용할 수 있습니다:
기본적으로 Laravel 로그 파일은 Storage/logs 디렉터리에 저장됩니다. PHP 프로세스가 디렉토리에서 쓰고 읽을 수 있도록 디렉토리에 대한 권한이 충분한지 확인해야 합니다. 터미널에서 다음 명령을 실행하여 디렉터리의 권한을 설정할 수 있습니다.
chmod -R 775 storage/logs
775 권한 설정을 사용하면 소유자 및 그룹 사용자는 디렉터리를 읽고, 쓰고, 실행할 수 있으며, 다른 사용자는 읽고 실행만 할 수 있습니다.
기본 저장 위치를 사용하지 않으려면 구성 파일을 통해 저장 위치를 수정할 수 있습니다. config/logging.php 파일을 열고 로그에서 경로 옵션을 찾아 지정된 저장 경로로 수정합니다.
'log' => env('APP_LOG', 'single'), 'path' => '/your/folder/path/logs/laravel.log', 'level' => env('LOG_LEVEL', 'debug'), 'channels' => [ // ... ],
파일 대신 Laravel 로그를 캡처하여 데이터베이스에 저장할 수 있습니다. 이 방법을 사용하면 파일 권한 문제를 방지하고 로그 분석 및 통계를 용이하게 할 수 있습니다.
다음 작업을 수행해야 합니다.
첫 번째 단계, 로그 테이블 만들기
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;
두 번째 단계, AppServiceProvider 등록
app/Providers/AppServiceProvider.php 파일에 다음 코드 추가:
use Illuminate\Support\Facades\Log; use Monolog\Handler\StreamHandler; use Monolog\Logger; public function boot() { $logger = new Logger('laravel'); $logger->pushHandler(new StreamHandler(storage_path('logs/laravel.log'), Logger::DEBUG)); Log::listen(function ($level, $message, $context) use ($logger) { $logger->$level($message, $context); }); }
세 번째 단계, 구성/로깅 수정 .php 파일
유사하게 config/logging.php 파일의 구성을 수정하고 로그 옵션을 데이터베이스로 설정하세요:
'log' => 'database', 'channels' => [ // ... ],
위의 세 가지 방법은 개발자가 Laravel에서 생성된 로그 파일에 대한 권한이 없는 문제를 해결하는 데 도움이 될 수 있습니다. 세 번째 방법을 사용하면 개발자가 애플리케이션 로그 정보를 더 잘 관리하고 분석할 수 있습니다.
위 내용은 laravel에서 생성된 로그에 권한이 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!