本当は $this->log() で書きたかったんだけど
これ、error か debug しか今使えないんですよね。
object.php のここ参照
switch($type) {
case LOG_DEBUG:
return $this->_log->write(‘debug’, $msg);
break;
default:
return $this->_log->write(‘error’, $msg);
break;
}
なので、書き出しのとこだけ頂いて自分で作りました。
以下コピって保存
以下のクラスを accesslogs.php として /app/vendors/ に保存
class AccessLogs{
function write_log() {
$msg = date(‘Y-m-d H:i:s’).”,”.env(‘REQUEST_URI’).”,”.env(‘HTTP_REFERER’).”,”.env(‘HTTP_USER_AGENT’).”,”.env(‘REMOTE_ADDR’).”\n”;$filename = LOGS.’accesslogs/’.date(‘Ymd’).’.log’;
$log = new File($filename);
$log->append($msg);return true;
}
}
app_controller に書き足し
/app/ になければ cake フォルダからコピってこれを書き足して保存でOK
vendor(‘accesslogs’);
class AppController extends Controller{
$this->access = new AccessLogs();
$this->access->write_log();}
ログフォルダ作成
ログを格納するフォルダを作るだけです。
cake/app/tmp/logs/
ここに accesslogs というフォルダを作って書き込み権限を与える。
おしまい
これでどの controller にアクセスされても、日時と、
REQUEST_URI,HTTP_REFERER,HTTP_USER_AGENT,REMOTE_ADDR
を cake/app/tmp/logs/accesslogs 書き出してくれます。