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');
|