私はすべての書き込み操作をログに記録しようとしているので、AppModelでafterSaveおよびafterDeleteコールバックを使用しています。基本的に(今のところ)ログに記録する必要があります:モデル、コントローラー関数、ログインしたユーザーデータ、リモートIPすべてを取得できたようですが、コントローラー関数名を取得する方法がわかりません。これは私が今持っているアフターセーブ機能です:
public function afterSave($created) {
App::uses('Folder', 'Utility');
$month = date("y-m");
if(!is_dir('../tmp/logs/'.$month)) {
$dir = new Folder('../tmp/logs/'.$month, true);
}
App::uses('CakeSession', 'Model/Datasource');
$user_id = CakeSession::read('Auth.User.username');
if($created) {
$id = 'New';
} else {
$id = $this->data[$this->alias]['id'];
}
$str = 'WRITE Action. Model: '.$this->alias.'. Controller: functon_name. ID:'.$id.'. Username: '.$user_id.'. Client IP: '.$this->getIP();
CakeLog::write($month.'/'.date("d-m-y"), $str);
}
ありがとう