AS400/IBMi Laravelでユーザーの使用ログを取る

IT関連

ユーザーにデータベースの内容を照会するシステムを作ってきたけど、ログを取らないと、誰がどんなメニューを使ったのか、このメニューは誰か使ってくれているのかが解らないので、ログを取るようにしたい。

手順は、

  1. ログ用のテーブルを作る
  2. ログ用テーブルのモデルを作る
  3. モデルの中に記録を書き込むファンクションを作る
  4. コントローラーからモデルを呼び出す

こんな感じだけど、いちいち全てのコントローラーに仕込むのは面倒なので、ミドルウェアに登録して全てで呼び出すようにする。

 

ログ用テーブル

本当は他にもあるけど最低限こんな感じ。

日付と時刻と使用者名とパスです。

スキーマはHOGELIBで、テーブルはLOGTABLEにする。

 

ログテーブル用のモデルとファンクション

‘使用者’は自分のプログラム内で引っ張るようにすること。

 

ミドルウェアを作成

作り方はコマンドを叩く。

自分のXAMPPテスト環境に作るので、コマンドプロンプトを開き、cdでhtdocsフォルダまで移動する。

コマンドは下記。ミドルウェアの名前はRecにした。RecMiddleware。

これでRecMiddlewareが、Http直下Controllersと同じ階層にあるMiddlewareの中に出来る。

 

ミドルウェアを修正

下記のように修正してミドルウェアからモデルとファンクションにアクセスするようにする。

 

ミドルウェアを毎回呼び出すようにする

Http直下にあるKernel.phpを開き$middlewareに追記する。カンマを忘れないように注意。

 

これでいけるはず。どこのメニューに誰がアクセスしても記録されているはず。

後は本番にpushするだけ。

コメント

タイトルとURLをコピーしました