【问题标题】:YII separate log files to store messages category-wise [closed]YII 单独的日志文件以按类别存储消息 [关闭]
【发布时间】:2012-08-23 19:57:49
【问题描述】:

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

我的 config/main.php 文件是这样的

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

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

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);
}

此日志消息与我的其他消息一起存储在 application.log 中。 所以我想要单独的文件用于我的更改语言功能日志。

【问题讨论】:

    标签: php logging yii


    【解决方案1】:

    你需要定义一个额外的日志路由,指定一个不同的log file name

    'log'=>array(
        'class'=>'CLogRouter',
        'routes'=>array(
            array(
                'class'=>'CFileLogRoute',
                'categories'=>'system.*',
            ),
            array(
                'class'=>'CFileLogRoute',
                'logFile'=>'custom.log',
                'categories'=>'custom.*',
            ),
        )
    )
    

    更多细节可以在权威指南的logging部分找到。

    【讨论】:

    • 成功了。感谢您的快速回复。
    • 使用新的日志:Yii::log("hello", "info", "custom");
    • 嗨,我想为我项目中的每个模块创建单独的日志文件。任何人都可以帮助我吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-26
    • 2018-05-22
    • 1970-01-01
    • 2013-08-22
    • 1970-01-01
    • 2019-06-20
    相关资源
    最近更新 更多