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