본문 바로가기

리눅스

[draft] Laravel 애플리케이션의 요청에 대한 로그를 파일에 기록하는 방법

728x90

Laravel 애플리케이션의 요청에 대한 로그를 파일에 기록하는 방법

Laravel에서는 내장된 Monolog 라이브러리를 사용하여 로그를 관리합니다. Monolog을 통해 로그를 파일로 기록하고 관리할 수 있습니다. 따라서 Laravel의 access 로그를 남기기 위해서는 Monolog을 구성하여 원하는 형식으로 로그를 기록하면 됩니다.

1. 환경 설정 변경

config/logging.php 파일을 편집합니다.

vim config/logging.php

2. 로그 채널 추가

access 채널을 추가합니다.

<?php

use Monolog\Handler\NullHandler;
use Monolog\Handler\StreamHandler;
use Monolog\Handler\SyslogUdpHandler;
use Monolog\Processor\PsrLogMessageProcessor;

return [
...
        'emergency' => [
            'path' => storage_path('logs/laravel.log'),
        ],
        'access' => [
            'driver' => 'single',
            'path' => storage_path('logs/access.log'),
            'level' => 'info',
        ],

    ],

];

storage/logs 디렉토리에 access.log라는 파일로 접근 로그가 기록됩니다.

3. 로그 사용

로그를 사용하려면 컨트롤러나 라우트 등에서 로그를 호출합니다.

vim routes/web.php
<?php

use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Log;

Log::channel('access')->info('Access log message');
...

4. 권한 설정

로그 파일에 쓰기 권한을 주어야 합니다.

chmod -R 775 storage/logs

5. 접근 로그 확인

tail -f storage/logs/access.log
$ tail -f storage/logs/access.log 
[2024-05-20 03:10:18] local.INFO: Access log message  
[2024-05-20 03:10:40] local.INFO: Access log message  
[2024-05-20 03:10:41] local.INFO: Access log message  
[2024-05-20 03:10:41] local.INFO: Access log message  
[2024-05-20 03:10:41] local.INFO: Access log message  
[2024-05-20 03:10:41] local.INFO: Access log message

 

Laravel 애플리케이션의 접근 로그를 storage/logs/access.log 파일에 기록합니다.

 

참고URL

- Laravel Documentation : Logging

 

728x90