サマリ | 環境変数を指定等、カスタマイズ性能を重視したアクセスログ |
---|---|
リビジョン | 1.0 |
対応バージョン | 1.4.5_1(他は未確認) |
投稿者 | dnoc |
目次
アクセスログをとるプラグインです。
同様の用途で、access.inc.php 等いくつかありますが、以下の点が特徴的です
#ref(): File not found: "logparanoia.inc.php" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-logparanoia.inc.php"
.htaccessが設置できないサーバーで、外部からログファイルを見えなくする方法
#logparanoia()と記述する。
<?php require_once(PLUGIN_DIR. 'logparanoia.inc.php'); echo plugin_logparanoia_convert() ?>という2行を追加します。場所は、私は</body>のちょっと上くらいに書いています。
define('DIR',"./logparanoia/");
ログディレクトリ名です。
define('LOGFILE',"log.txt");
ログファイル名です。
define('LASTFILE',"last.txt");
前回のアクセスを記述するファイル名です。
define('SIZEMAX',10000000);
ログファイルのサイズ上限です。これを超えたら別名で保存します。
$w_env = array( "time" => time(), "page" => $vars["page"], );
登録項目名です。
左側に、貴方が自由に名づけるkey「=>」の右側には、サーバーで表示可能な環境変数名を設定できます。
$eliminate_same = array("page", "cmd", "ip", "user_agent");
$w_envで左側に指定したkey名を追加します。このkey全てが一致した時、アクセスログには追加されません。この機能をオフにしたい場合には、
//$eliminate_same = array("page", "cmd", "ip", "user_agent");
というように行頭に//を追加します。
追記:バグで、この機能をオフにすると動かなる場合があります。次期バージョンで訂正いたします。
$eliminate_ip = array("192.168.0.1");
ここに記載されているIPアドレスのアクセスはログファイルに記載されません。
ここでは正規表現で評価されるので"^192.168."とかすれば範囲指定が出来ます。反対に"192.168.0.1"だと、192.168.0.10とかも適合しますので、IPを直接指定したい場合は"^192.168.0.1$"と指定して下さい。
デフォルトではコメントアウトされています。
拙作、webdl.inc.phpでログファイルをダウンロードして下さい。アクセスログの書式はタブ区切りなので、表計算ソフトで集計可能です。
ただ、デフォルトではUNIX時間なので、
EXCELで日本時間(JST)に変換するには
="1970/1/1"+(A2+32400)/86400
というようにした後、セルの書式を日付に変更して下さい。
それが面倒くさい場合は、$w_envの該当箇所を
//"time" => time(), "time" => date("YmdHis"),
という風に書き換えて下さい。*3
また、EUCで記述されますので、Windowsで取り扱う際にはnkfでs_jisに変換するか、各種漢字コードに対応したテキストエディタを利用してください。*4
後、書式は、ファイル頭に、$w_envのkey、つまり、定義をタブ区切りで表記し、以下各列に対応した値をタブ区切りで書き込んでいるだけです。
この書式に対応したアクセス解析プラグインとか自由に作って下さい。
追記*5:コメント欄参照、うしさんがアクセス解析を作成してくださいました。
// "time" => date("YmdHms")となっており、
Artistic License
アクセス解析プラグインを作る。
連続アクセスに関するバグ訂正
ulrエンコーディングから日本語に変換して記録するオプションの追加(アクセス解析プラグインを作ったら、この機能は作らないかもしれないです。