実現したいこと
現在、CakePHP4にてログ出力処理をカスタマイズしています。
解析のための情報として、ログインユーザのIDを出力させたいです。
発生している問題・分からないこと
BaseLogクラスをextendsしたDatabaseLogクラスを作成し、
この中でLogsテーブルに情報を出力させていますが、
ログインユーザ情報を取得する方法がわかりません。
該当のソースコード
php
1 public function log($level, $message, array $context = []) 2 { 3 $sessionId = ''; 4 if (session_id() != '') { $sessionId = session_id(); } 5 try { 6 $entity = $this->_table->newEntity([ 7 'datetime' => date('Y-m-d H:i:s'), 8 'level' => $level, 9 'sessionid' => $sessionId, 10 'user_id' => '', // ←ここにログインユーザIDを入れたい 11 'url' => env('REQUEST_URI'), 12 'message' => $this->interpolate($message, $context), 13 ]); 14 $this->_table->saveOrFail($entity); 15 } catch (\Exception $e) { 16 debug($e->getMessage());exit; 17 } 18 } 19
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
CakePHP2での情報として、AuthComponent::user()を利用するという手段を見つけましたが、
CakePHP4では非推奨となっていました。
また、$this->requestが使用できない、というのも確認済みです。
補足
特になし
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。