トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/216

ページの作成や編集にはユーザ登録が必要です。

access.logを指定サイズ以上で切替え(rotate)するパッチ

  • 投稿者: typer
  • カテゴリ: 修正
  • 優先度: 低
  • 状態: 提案
  • 日時: 2005年06月26日 21時51分58秒

 内容

access.logが一定サイズ以上になったら切替え(rotate)をします。

  • サイズはsetup.datで下記の様に指定します。単位はkbyte(1024byte)です。
    • access_log_limit_kbyte = 1000
  • access_log_limit_kbyteがない、または0の場合は今まで通り無制限となります。
  • 切替えは下記の様に行ない、2世代残します。これは固定です。
    • access.log → access.log.0 → access.log.1
  • 圧縮はしません。
  • access.logを参照するプラグインは影響を受けます。
  • 僅かですがconflictによりログが消える可能性があります。

 影響を受けるプラグイン

附属プラグインで影響を受けるのは以下です。

access、accessdays、todayslinkプラグイン
切替えによりアクセス数はリセットされます。しばらく過去の表示がなくなります。
ログファイルの管理
古い世代のファイルは見えず、消せませんが、そのうち上書きされるでしょう。

 パッチ

--- ShowPage.pm.orig	Sun Jun 26 20:32:31 2005
+++ ShowPage.pm	Sun Jun 26 20:45:41 2005
@@ -78,6 +78,12 @@
 	open(LOG,">>".$wiki->config('log_dir')."/".$wiki->config('access_log_file')) or die $!;
 	print LOG Util::url_encode($page)." ".&log_date()." $ip $ref $ua\n";
 	close(LOG);
+	my $filename = $wiki->config('log_dir')."/".$wiki->config('access_log_file');
+	my $limit_size = $wiki->config('access_log_limit_kbyte') *1024;
+	if ($limit_size and -s $filename > $limit_size) {
+		rename "$filename.0", "$filename.1";
+		rename "$filename", "$filename.0";
+	}
 }
 
 #===============================================================================

 ライセンス

GPLとします。

 コメント

  • 一部コードをパクらせていただいてファイルサイズを固定にする改造を投稿しようと思います。いじるのはcore/ShowPageプラグインでrenameで排他制御をする予定。今からperlの勉強してきます。 - ryon (2005年07月12日 15時08分35秒)
  • BugTrack-plugin/220に改良版を投稿しました。 - ryon (2005年07月12日 19時42分49秒)
お名前: コメント:

最終更新時間:2006年02月12日 06時44分29秒