リファラとかアクセスログを取得 1


本当は $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 書き出してくれます。


One comment on “リファラとかアクセスログを取得

  1. Pingback: CakePHP 2.3 ログイン、操作履歴、アクセスログ出力

Leave a Reply