Log クラス

Log クラスを使用すると、ログファイルにメッセージを書き込むことができます。

設定

ログファイルは、 config.php 内の属性 'log_path' で指定されたフォルダに配置されます。また、パラメータとして 'log_threshold' 、 'log_date_format' を設定することができます。
これらの設定は Config クラスを使用することによりその場で変更することができます。

パラメータ デフォルト 説明
log_threshold constant
Fuel::L_WARNING
次のいずれかを指定できます: Fuel::L_NONE, Fuel::L_ERROR, Fuel::L_WARNING, Fuel::L_DEBUG, Fuel::L_INFO or Fuel::L_ALL
log_file string
null
ログファイルの名前。指定がない場合、"./YYYY/MM/DD.log" という形式で 1日 1つのログファイルが生成されます。
log_path string
APPPATH.'logs/'
ログファイルの配置場所 (フォルダが書き込み可能である必要があります) 。
log_date_format string
'Y-m-d H:i:s'
ログエントリ日付の形式。PHP の date 形式に準拠。詳細は http://www.php.net/date を参照して下さい。

使用方法

4 つの便利な事前定義関数があります:

Log::info()
Log::debug()
Log::warning()
Log::error()

これらは全て Log::write() 関数を使用しており、最初の引数として、 $level パラメータを渡しています。

例:
// 当日のログファイルに "Info" レベルでログを記述します
$var = 1;
Log::info('Application started (with $var = '.$var.')', 'my_init_function()');

// パラメータ $method を使わずに、ログファイルに $var の新しい値をを保存します。
$var = 5;
Log::debug('$var is now '.$var);

// 警告ログのエントリを送信します
if($var !== 1) Log::warning('Although $var has been changed, we will keep going.');

// エラーログのエントリを送信します
if($var !== 1) Log::error('We cannot keep going, $var has been changed! :o');

// 最後に、独自の $level のログエントリを作成します
Log::write('Link', 'More info on http://fuelphp.jp/');
出力

すべてのログファイルは定義されたフォルダ (上を参照) に保存されます。
ファイル名を設定した場合、すべてのログがそのファイルに書き込まれます。ログファイルが非常に大きくなるのを避けるためには、ログローテーションのメカニズム (例えば、Linux の logrotate) をあなたがセットアップする必要があります。 ファイル名を設定しなかった場合、ログファイルは、 現在の のフォルダの中に のフォルダの中 (例えば、"2013/06") に 日をファイル名として (例えば、"15.php") 作成されます。
この例でのログファイルの完全なパスは次になります: APPPATH.'logs/2013/06/15.php'

上記の例はログファイルに次のコードを記述します:

<?php defined('COREPATH') or exit('No direct script access allowed'); ?>

Info - 2011-01-03 18:44:45 --> my_init_function() - Application started (with $var = 1)
Debug - 2011-01-03 18:44:45 --> $var is now 5
Warning - 2011-01-03 18:44:45 --> Although $var has been changed, we will keep going.
Error - 2011-01-03 18:44:45 --> We cannot keep going, $var has been changed! :o
Link - 2011-01-03 18:44:45 --> More info on http://fuelphp.jp/

info($msg, $method = null)

info メソッドを使用すると、 "Info"$level のログエントリを書き込むことができます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$msg 必須 ログエントリ情報。
$method
null
ログエントリを作成したメソッドに関する情報。
返り値 boolean
$var = 1;
Log::info('Application started (with $var = '.$var.')', 'my_init_function()');

debug($msg, $method = null)

debug メソッドを使用すると、 "Debug"$level のログエントリを書き込むことができます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$msg 必須 ログエントリ情報。
$method
null
ログエントリを作成したメソッドに関する情報。
返り値 boolean
$var = 5;
Log::debug('$var is now '.$var);

warning($msg, $method = null)

warning メソッドを使用すると、 "Warning"$level のログエントリを書き込むことができます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$msg 必須 ログエントリ情報。
$method
null
ログエントリを作成したメソッドに関する情報。
返り値 boolean
// 警告ログのエントリを送信します
if($var !== 1) Log::warning('Although $var has been changed, we will keep going.');

error($msg, $method = null)

error メソッドを使用すると、 "Error"$level のログエントリを書き込むことができます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$msg 必須 ログエントリ情報。
$method
null
ログエントリを作成したメソッドに関する情報。
返り値 boolean
// エラーログのエントリを送信します
if($var !== 1) Log::error('We cannot keep going, $var has been changed! :o');

write($level, $msg, $method = null)

write メソッドを使用すると、 独自の$level のログエントリを書き込むことができます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$level 必須 独自のレベル。
$msg 必須 ログエントリ情報。
$method
null
ログエントリを作成したメソッドに関する情報。
返り値 boolean
// そして最後に独自の $level のログエントリを作成します
Log::write('Link', 'More info on http://fuelphp.jp/')

手続き型ヘルパー

logger($level, $msg, $method = null)

logger 関数は Log::write の別名です。

パラメータ
パラメータ デフォルト 説明
$level 必須 独自のレベル。
$msg 必須 ログエントリ情報。
$method
null
ログエントリを作成したメソッドに関する情報。
返り値 void
logger(\Fuel::L_INFO, 'My Message', 'SomeMethod');