ECcubeのsite.logのエラーのその後

ECcubeのsite.logのエラーに関して、以前

ECcubeでsite.logなんとかがGC_Utils.php上でエラーになる件

という記事を書いたが、ちょっとだけ修正。

やや後ろ向きな修正かもしれないが、とりあえずエラー(というかワーニング?)が出なければいいので、

GC_Utils.phpの207行目部分を修正しました。

修正といってもclass/util以下に書いてしまうとバージョンアップした時に綺麗に消えてしまうので、

class_extends/util_extend/GC_Utils_Ex.php
に、
class/util/GC_Utils.php
から


function gfLogRotation($max_log, $max_size, $path) {

を丸ごとコピーして、


copy("$dirname/" . $arrFile[$i - 1], "$path.$move_number");

がワーニングの原因だったので、この部分を


if( file_exists("$dirname/".$arrFile[$i-1] ) )
{
copy("$dirname/" . $arrFile[$i - 1], "$path.$move_number");
}

というように、ファイルが存在している場合にのみコピー。としました。

たぶん、この関数内の

natcasesort($arrFile);

でファイルをソートしているところで、勘違いがあって綺麗に

site.log.1
site.log.2
site.log.3
site.log.4

などという順番に取れておらず、その関係でファイルがあったり無かったりしてしまうんじゃないか?と思うが、
そこまで追うのが少々面倒なので今回はこれで対応。