index.php YII中的YII_TRACE_LEVEL?

时间:2014-05-08 11:26:52

标签: php logging yii trace

在我的index.php文件中,

我知道这个YII_DEBUG用于在浏览器屏幕上显示任何错误

defined('YII_DEBUG') or define('YII_DEBUG',true);

YII_TRACE_LEVEL下面的含义是什么意思?

defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);

1)什么是YII_TRACE_LEVEL?

2)这是什么意思?

3 个答案:

答案 0 :(得分:3)

是的,你是对的。浏览器屏幕上的define('YII_DEBUG',true)显示例外。

同样的Log也在protected / runtime / * .log

中创建

YII_TRACE_LEVEL数字确定应在跟踪消息中记录每个错误或堆栈的层数,即您想要查看的日志长度。

您可以阅读更多相关信息click here

答案 1 :(得分:2)

Yii可以记录调用堆栈信息。 由于性能考虑,默认情况下禁用此功能。

要启用此功能,请在index.php中定义(允许int> 0)YII_TRACE_LEVEL

YII_TRACE_LEVEL的数量决定了跟踪消息中应记录每个调用堆栈的层数

请参阅http://www.yiiframework.com/doc/guide/1.1/en/topics.logging#logging-context-information

答案 2 :(得分:1)

1)什么是YII_TRACE_LEVEL?
<<指定每条日志消息中应显示多少级别的调用堆栈

2)这是什么意思?
<<它的作用类似于max iteration allowed函数中的logs值 <<检查如何使用你可以有一个更清晰的想法:

public static function log($msg,$level=CLogger::LEVEL_INFO,$category='application')
{
    if(YII_DEBUG && YII_TRACE_LEVEL>0 && $level!==CLogger::LEVEL_PROFILE)
    {
        // ...
        $traces=debug_backtrace();
        $count=0;
        foreach($traces as $trace)
        {
            // ...
            if(++$count>=YII_TRACE_LEVEL) // used to break loop
                break;
        }
    }       
}

参考:https://github.com/yiisoft/yii/blob/1.1.15/framework/YiiBase.php#L464