【问题标题】:Yii separate log files for each userYii 为每个用户单独的日志文件
【发布时间】:2014-08-05 19:32:57
【问题描述】:

我想为每个用户将我的日志消息存储在单独的日志文件中。 我目前的配置是这样的:

'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 并且日志文件名应该动态设置... 我该怎么做...?

【问题讨论】:

  • 您要存储不同的文件夹或文件名吗?

标签: logging yii


【解决方案1】:

我能想到的就是扩展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.*',
    ),
    ...
))

【讨论】:

  • 嗨,我也想为我项目中的每个模块创建单独的日志文件,你能帮我做同样的事情吗
猜你喜欢
  • 2023-03-10
  • 2014-09-26
  • 1970-01-01
  • 2011-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-11
  • 1970-01-01
相关资源
最近更新 更多