我想将日志消息存储在每个用户的单独日志文件中。 我当前的配置如下:
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'logFile'=>'custom.log.u1',
'categories'=>'error.*',
),
array(
'class'=>'CFileLogRoute',
'logFile'=>'custom.log.u2',
'categories'=>'error.*',
),
...
))
但我的用户超过2,日志文件名应动态设置... 我怎么能这样做......?
答案 0 :(得分:2)
我能想到的是扩展CFileLogRoute
并覆盖一些功能:
在一个像组件一样自动加载的文件夹中创建一个名为MyLog
的php文件
class MyLog extends CFileLogRoute
{
public $filderName;
public function getLogFile()
{
return parent::getLogFile() . (int)Yii::app()->user->id;
}
public function setLogFile($value)
{
parent::setLogFile($value . (int)Yii::app()->user->id);
}
}
然后在你的配置中:
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'MyLog',
'categories'=>'error.*',
),
...
))