Yii学习之log以及输出数组

Yii学习之log以及输出数组

 

Yii可以log信息到文件和web page页面

log的函数是

Yii::log( $message, $level, $catelories )

level可以是

  • trace
  • info
  • warning
  • error

categories自己定义,这个用于在配置中做过滤。

例如:

Yii::log( "this is test message", "info", "system.web.controller.test" )

 

需要在配置文件:

protected/config/main.php

        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'CFileLogRoute',
                    'levels'=>'error, warning, info',
                ),
 
                // uncomment the following to show log messages on web pages
                array(
                    'class'=>'CWebLogRoute',
                    'levels'=>'error, warning, info',
                ),
 
            ),  
        ),

蓝色的部分是log到文件。

文件是在:

protected/runtime/application.log

绿色的部分是配置输入到webpage。

可以将2个同时打开,这样log文件和webpage都会有。

注意这里配置后,并不需要在

weboort/index.php

打开debug的定义,跟这个debug设置并没有关系。

 

yii的log还能输出数组,不过不是直接输出,例如下面的错误的

$myarr = new array();

Yii::log( $myarr, … );

而是通过Yii提供的

CVarDumper

这个类的dumpAsString来将数组转换为string然后输出

更多这个类的信息请看

CVarDumper

所以上面的那个例子中log应该改为:

Yii::log( CVarDumper::dumpAsString( $myarr ), …. );

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示