牛骨文教育服务平台(让学习变的简单)
博文笔记

Yii::记录日志到自定义文件

创建时间:2013-05-03 投稿人: 浏览次数:212

默认情况下,Yii::log($msg, $level, $category)会把日志记录到runtime/application.log文件中

日志格式如下:

[时间] - [级别] - [类别] - [内容]

2013/05/03 17:33:08 [error] [application] test

但有时候需要把某些特定的日志放到特定的文件中,比如交易失败的日志,需要和其他日志区分开来单独记录。

在Yii中可以通过配置不同的CLogRouter来解决。

你需要先了解Yii的日志机制,Yii的日志功能有CLogger和CLogRouter两部分,

其中CLogger负责记录日志数据在内存中,而CLogRouter则决定如何处理这些日志数据,如记录到文件或数据库,或发送邮件等

其中的CFileLogRoute就是用来以文件的形式来处理日志数据的。那么很自然的,通过配置不同的CFileLogRoute就可以把日志记录到不同的日志文件中。

具体配置如下:

        "log" => array(
            "class" => "CLogRouter",
            "routes" => array(
                array(
                    "class" => "CFileLogRoute",
                    "levels" => "error, warning",
                ),
                array(
                    "class" => "CFileLogRoute",
                    "levels" => "error, warning",
                    "categories"=> "orders.*",
                    "logFile"=> "orders.log",
                ),

在需要记录订单错误的地方,添加如下代码:

Yii::log("your message", "error", "orders");


by iefreer
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。