3

我正在使用 yii 框架来实现一个新项目。我想在它在服务器上运行之前查看 sql 字符串。我已经在我的配置文件中启用了这个代码,但我仍然没有得到任何结果

array('class'=>'CWebLogRoute',),

当我运行网页时,我应该怎么做才能查看 sql 字符串?

4

4 回答 4

2

尝试将其放在 main.php (config) 中的组件下:

'log'=>array(
    'class'=>'CLogRouter',
    'routes'=>array(
        'weblogging'=>array(
            'class'=>'CWebLogRoute',
            'enabled'=>true,
            ),
        ),
    ),

然后它将显示调试信息以及该页面上运行的所有 sql。

于 2012-11-12T09:34:08.043 回答
1

您可以制作简单的记录器将您的字符串记录到文件中:

$file = fopen("my.log", "a+");
fwrite($file, $logString."\r\n");
fclose($file);
于 2012-11-12T09:06:41.440 回答
1

在您的config/main.php中,在 db 数组之后添加如下:

'db'  => array(
 //your db array listing
),
//add following
'log' => array(
    'class'=>'CLogRouter',
    'routes'=>array(
        array(
            'class'=>'CFileLogRoute',
            'levels'=>'error, warning',
        ),
        array(
            'class'=>'CWebLogRoute',
            'levels'=>'trace',
            'categories'=>'system.db.*',
        ),

    ),
)
于 2012-11-12T09:16:21.927 回答
1

配置数组有一个键components,你必须在其中添加log组件,并且log应该在其中将 声明CWebLogRoute为路由。您还必须使用preloadlog组件。

最小示例(project-name/protected/config/main.php):

return array(
    // other configurations
    // ...

    // preloading 'log' component
    'preload'=>array('log'), // this is also necessary

    // ...
    'components'=>array(
        // other components
        // ...

        'log'=>array(
            'class'=>'CLogRouter',
            'routes'=>array(
                array(
                    'class'=>'CWebLogRoute'
                ),
                // ... other routes ...    
            )
        ),

        // ...
    )

);

阅读指南以获取有关日志记录的更多提示。

于 2012-11-12T09:53:45.580 回答