Yiiでログをとるには
Yii::log($message, $level, $category);
を利用します。
$levelにはinfo、trace、warning、error、profileなどを設定します。デフォルトはinfoです。
$categoryには適当な文字列を設定します。デフォルトはapplicationです。
Yii::logで記録したログは、ブラウザ、メール、ファイル、データベースなどに出力されます。
設定は、protected/config/main.phpの以下の部分で行います。
'preload'=>array(
'log',
),
'components'=>array(
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
//levelがerrorで、かつ、categoryがdangerの場合はメールで通知する
array(
'class'=>'CEmailLogRoute',
'levels'=>'error',
'categories'=>'danger',
//$_GETや$_POST、セッションIDなどの付加情報も追加する
'filter'=>'CLogFilter',
//宛先
'emails'=>'nakade@example.jp',
//送信元
'sentFrom'=>'webmaster@example.com',
//件名
'subject'=>'Error at Example',
),
//levelがerrorの場合は、level_error.txtに保存する
array(
'class'=>'CFileLogRoute',
'levels'=>'error',
//ファイルはprotectec/runtime以下に作成されます
'logFile'=>'level_error.txt',
//$_GETや$_POST、セッションIDなどの付加情報も追加する
'filter'=>'CLogFilter',
),
//levelがwarningかinfoの場合は、level_warning_and_info.txtに保存する
array(
'class'=>'CFileLogRoute',
'levels'=>'warning, info',
//ファイルはprotectec/runtime以下に作成されます
'logFile'=>'level_warning_and_info.txt',
//$_GETや$_POST、セッションIDなどの付加情報も追加する
'filter'=>'CLogFilter',
),
//levelがprofileの場合は、FireBugなどのデベロッパーツールに出力する
array(
'class'=>'CWebLogRoute',
'levels'=>'profile',
'showInFireBug'=>true,
'ignoreAjaxInFireBug'=>true,
),
//ログはブラウザに出力する
array(
'class'=>'CWebLogRoute',
),
),
),
),