Not sure I have the answer, but I have some questions:
Why are you explicitly passing in the value "error" to the Yii::log() function?
The default value for level is "info". All of your log messages will
have the "error" level if this is how you consistently call the log() function.
In your config file, why do you specify ‘categories’=>‘system.services.*’ ?
Here’s a config I use which works well:
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
// Log errors and warnings to : protected/runtime/error.txt
array(
'class'=>'CFileLogRoute',
'levels'=>'error, warning',
'logFile'=>'error.txt',
),
// Log info and trace messages : protected/runtime/debug.txt
// Do NOT include this in production
array(
'class'=>'CFileLogRoute',
'levels'=>'info, trace',
'logFile'=>'debug.txt',
),
// Since this is my DEBUG config, also display errors and warnings to the browser
array(
'class'=>'CWebLogRoute',
'levels'=>'error, warning',
),
),
),