Neo Inspiration

Feed Rss

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

07.10.2007, cakePHP, 自作, by .

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

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>