FuelPHPのデフォルト設定では、ログファイルは以下の形式で保存されます。
/fuel/app/logs/YYYY/MM/DD.php
ここで、YYYYとMMのディレクトリは存在しない場合、自動的に生成されます。
ログファイルの保存場所を変更するには、fuel/app/config/config.php内のlog_pathを編集します。
//'log_path' => APPPATH.'logs/',
'log_path' => APPPATH.'logs/batch', //①
// 'log_path' => APPPATH.'logs/'.date('Y/m').DS, // ②
注意点として、log_pathで指定したパスは事前に存在している必要があります。存在しない場合はエラーが発生します。
ファイル名や拡張子を変更するには、log_fileを編集します。
'log_file' => date('d').'.log', // "DD.php" という形式
log_fileを設定しない場合、FuelPHPはlog_pathで指定されたパスの下にYYYYとMMのディレクトリを自動的に作成し、DD.phpというログファイルを生成します。
しかし、log_fileを設定すると、YYYY/MMのディレクトリ構造は自動生成されず、log_fileで指定した形式に従ってファイルとディレクトリが生成されます。
'log_file' => date('d').'.log', // この場合、DD.log形式のファイルが生成され、ディレクトリは作成されません。
// ファイル名を変更しつつ、YYYY/MMのディレクトリ構造を維持したい場合は以下のように設定します。
'log_file' => date('Y/m').DS.date('d').'.log', // この場合、指定されたパスに沿ってディレクトリが生成されます。
例えば、ログファイルの拡張子を.phpから.logに変更したいとします。
最初の試みは以下のようになります。
'log_file' => date('d').'.log', // ファイル名を "DD.log" 形式に
'log_path' => APPPATH.'logs/'.date('Y/m').DS, // パスを "APPPATH/YYYY/MM/" に
この設定は、変更直後は問題なく動作しますが、月が変わるとエラーが発生します。その理由は、先述の通り、log_pathで指定したパスが存在しなくなるためです。
正しい設定方法は、log_fileに動的なパス情報を含めることです。log_pathは静的なパスに保つか、必要に応じてコメントアウトします。
'log_file' => date('Y/m').DS.date('d').'.log', // "DD.log" 形式で、動的なパスを含める
// 'log_path' => APPPATH.'logs'.DS, // 静的なパスは不要になる場合
まとめ:
- 静的なパス部分はlog_pathで設定します。
- 動的なパスやファイル名の部分はlog_fileで設定します。log_fileはファイル名だけでなく、パスの一部も指定できます。
log_pathで指定したパスは事前に存在している必要があり、存在しないとエラーになります。
log_fileで指定したパスは、log_pathの下に作成されるため、事前に存在する必要はありません。存在しない場合は自動的に作成されます。