【Laravel】ログの操作
設定について
config/logging.php
use Illuminate\Support\Facades\Log;
ログ出力場所
.envに記載のLOG_CHANNELがデフォルトかな
配列を渡せる
code:php
チャンネルという単位
どんな設定でログを出力するのかを決めること
logging.php などで定義できる
code:php
// logging.php
'channels' => [
'postlog' => [ // 自作channel設定
'driver' => 'daily', // dailyドライバを使う
'path' => storage_path('logs/postlog_channnel.log'), // path
'level' => 'debug', // どの程度のログか(緊急度.)
'days' => 3,
]
// storage/logs/postlog_channnel-2023-01-07.log を吐き出すことができる
Log::channel('postlog')
Monolog
かあスレのものは、2.x
Laravelに標準で導入されている、PHPのライブラリのこと
Laravel特有の機能というわけでなく、導入すればバニラPHPでも当然使用できる
使い方
README.mdをちゃんと読めば書いてる
code:php
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
// create a log channel
$log = new Logger('name');
// Logger::classの記述で、どの程度のレベルまでlogファイルに出力するかを決めている。
// 今回はWARNINGなので、$log->info()の情報はログファイルには書かれない。
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::WARNING));
// add records to the log
$log->warning('Foo');
$log->error('Bar');
日付のログ
StreamHandlerの部分を、RotatingFileHandlerとする
配列をmonologで出す
code:php
$user_ids = User::pluck('id') // 配列
$monolog->info('ユーザーID一覧', $user_ids); // []で囲むこと。