YII将日志文件分开以按类别存储消息

Dee*_*ngh 2 php logging yii

我想将我的日志消息存储在单独的日志文件中,而不是默认的/protected/runtime/application.log文件中.

我的config/main.php文件就像

'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'CFileLogRoute',
                    'levels'=>'error, warning,info,trace',
                    'categories'=>'system.*',
                ),
Run Code Online (Sandbox Code Playgroud)

我的日志消息功能在这里使用

public function changeLanguage($localLanguage)
{

    $currentLanguage=yii::app()->language;
    yii::app()->language=$localLanguage;
    $message='langusge changed from '.$currentLanguage.' to '.$localLanguage;
    $level='info';
    $category='system.web.CController';
    Yii::log($message, $level, $category);
}
Run Code Online (Sandbox Code Playgroud)

此日志消息存储在application.log中,同时还有很多其他消息.所以我想要更改语言功能日志的单独文件.

Jon*_*Jon 11

您需要定义其他日志路由,指定其他日志文件名:

'log'=>array(
    'class'=>'CLogRouter',
    'routes'=>array(
        array(
            'class'=>'CFileLogRoute',
            'categories'=>'system.*',
        ),
        array(
            'class'=>'CFileLogRoute',
            'logFile'=>'custom.log',
            'categories'=>'custom.*',
        ),
    )
)
Run Code Online (Sandbox Code Playgroud)

更多细节可以在权威指南的日志记录部分找到.