라라벨의 로그
로그를 출력하는 방법으로 라라벨에서 기본적으로 제공해주는 Log::debug($message)나 Monolog라이브러리를 사용할수있다
아래의 설명의 라라벨의 로그를 사용한다
로그설정파일
아래의 경로에 로그 설정정보가 있다 (위의 이미지 참조)
/config/logging.php
로그설정파일의 항목설명
'default' => env('LOG_CHANNEL', 'stack'), // 1. env에 설정된 LOG_CHANNEL이 없으면 stack 채널을 사용한다
'channels' => [
'stack' => [ // 2. 앞서 설정된 stack채널, 특징으로써는 channels에 다수의 채널을 추가가능하다
'driver' => 'stack',
'channels' => ['single'], // 3. 현재 single채널만 사용한다는 의미, daily등을 추가가능하고 추가하면 , single,daily로그 둘다 출력
'ignore_exceptions' => false,
],
'single' => [ // 하나의 laravel.log파일에 계속 로그를 저장한다
'driver' => 'single',
'path' => storage_path('logs/laravel.log'), // 4. single채널의 로그파일을 storage/logs/laravel.log에 저장한다
'level' => env('LOG_LEVEL', 'debug'), // 5.로그레벨은 debug부터 저장 (전부다 저장한다는말이됨)
],
'daily' => [ // 매일 로그를 저장한다
'driver' => 'daily',
'path' => storage_path('logs/laravel.log'),
'level' => env('LOG_LEVEL', 'debug'),
'days' => 14, // 6.14일 간격으로 로그를 삭제한다
],
로그레벨
로그레벨을 warning으로 할 경우 warning이하의 항목( notice, info, debug )은 로그를 발생시키지않는다
emergency
alert
critical
error
warning
notice
info
debug
로그레벨출력
로그의 퍼사드를 사용한다
Log::emergency($message);
Log::alert($message);
Log::critical($message);
Log::error($message);
Log::warning($message);
Log::notice($message);
Log::info($message);
Log::debug($message);
실제사용예제
Log::info('User failed to login.', ['id' => $user->id]);
// [2023-08-02 12:34:56] local.INFO: User failed to login. {"id": 123}
채널지정하고 사용
Log::stack(['single', 'slack'])->info('Something happened!');
슬랙으로 로그 보내기
슬랙api에서 앱을 생성
Incoming Webhooks에서 Add New Webhook to Workspace버튼을 클릭해서 URL을 생성 ( 아래 이미지 참조 )
생성된 Webhook URL을 laravel의 .env파일에 추가
LOG_SLACK_WEBHOOK_URL = WebhookURL
php artisan config:clear명령어입력
config/logging.php에 slack채널 추가
'stack' => [
'driver' => 'stack',
'channels' => ['daily','slack'], // slack채널과 daily채널을 사용한다
'ignore_exceptions' => false,
],
'daily' => [
...
],
'slack' => [
...
],
슬랙에서 로그 확인
참조
https://mytory.net/archives/13149
https://mosei.tistory.com/entry/Laravel-%EB%9D%BC%EB%9D%BC%EB%B2%A8-log-%ED%8C%8C%EC%9D%BC%EC%97%90-%EB%A1%9C%EA%B7%B8-%EC%B6%9C%EB%A0%A5%ED%95%98%EA%B8%B0
https://laravel.kr/docs/9.x/logging
https://poppotennis.com/posts/laravel-slack-log