在Yii中调试SQL查询。 CFileLogRoute与CWebLogRoute

时间:2012-08-18 21:46:07

标签: php sql debugging yii

在网上进行了大量搜索后,我仍然无法弄清楚这一点。 CWebLogRoute不显示SQL调试信息,但CFileLogRoute会显示。有关如何使CWebLogRoute工作的任何想法?谢谢!

这是我的配置文件:

'db'=>array(
    'connectionString' => 'mysql:host=localhost;dbname=myname',
    'emulatePrepare' => true,
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8',
    'enableParamLogging'=>true,
    'enableProfiling'=>true,
),

'log'=>array(
    'class'=>'CLogRouter',
    'routes'=>array(
        array(
            'class'=>'CFileLogRoute',
            'levels'=>'error, warning, trace, info',
        ),
        array(
            'class'=>'CWebLogRoute',
            'levels'=>'error, warning, trace, info',
        ),
  )

3 个答案:

答案 0 :(得分:3)

它至少表现出什么?它在我当地的工作正常。尝试将profile添加到CWebLogRoute.levels。 顺便说一下,我更喜欢CProfileLogRoute sql

array(
    'class'=>'CProfileLogRoute',
    'enabled'=> YII_DEBUG,
),

答案 1 :(得分:0)

这并没有直接回答你的问题,但我发现Yii调试工具栏是我最近一直在做的工作的一个很棒的附加组件。它不仅会显示您正在运行的SQL语句(字面值,而不是参数化版本),还会显示您实际需要的许多其他信息......

您可以在此处获取:http://www.yiiframework.com/extension/yii-debug-toolbar/

答案 2 :(得分:0)

你的yii框架的版本是什么? 并设置级别''

'log'=>array(
        'class'=>'CLogRouter',
        'routes'=>array(
            array(
                'class'=>'CFileLogRoute',
                // 'levels'=>'error, warning',
            ),
            // uncomment the following to show log messages on web pages
            array( // configuration for the toolbar
              'class'=>'XWebDebugRouter',
              'config'=>'alignRight, opaque, runInDebug, fixedPos, collapsed, yamlStyle',
              // 'levels'=>'error, warning, trace, profile, info',
              'allowedIPs'=>array('127.0.0.1','::1','192.168.10.195','192\.168\.1[0-5]\.[0-9]{3}'),
            ),
        ),

    ),