Yii2:如何记录 SQL 查询?

Rob*_*ini 1 sql postgresql debugging logging yii2

我想记录执行的每个 SQL 查询,以便我可以调试它,然后在我的数据库工具中复制、粘贴和测试它。

我尝试了这个解决方案(Yii - echo the last query)(以及其他类似的解决方案),但它不起作用,因为我认为它适用于Yii1Yii2需要它。

我认为该解决方案独立于数据库(我使用 PostgreSQL)。也许我必须在common/config/main-local文件中配置它。

Azr*_*ard 5

如果您需要在 Yii (1) 中,请像这样在 main.php 中更新您的组件数组

       'components'=>array(
    #/*
                        'fixture'=>array(
                                'class'=>'system.test.CDbFixtureManager',                
                        ),
            #*/
                        'db'=>array(
                                'connectionString' => 'mysql:host=localhost;dbname=intakes_manager_test',
                                'emulatePrepare' => true,
                                'username' => 'root',
                                'password' => 'root',
                                'charset' => 'utf8',
                                'enableProfiling'=>true,
            'enableParamLogging'=>true,
                        ),
                        'log'=>array(
                                'class'=>'CLogRouter',
                                'routes'=>array(
                                        array(
                                                'class'=>'CFileLogRoute',
                                                'levels'=>'error,trace,info,warning',
                                                //'filter'=>'CLogFilter',
                    'categories'=>'system.db.*',
                    'logFile'=>'sql.log'
                                        )
                                )
                        ),
         ),
Run Code Online (Sandbox Code Playgroud)

对于 Yii 2 中的相同,请执行以下操作

'components' => [
        'log' => [
            'targets' => [
                'file' => [
                    'class' => 'yii\log\FileTarget',
                ],
                'db' => [
                    'class' => 'yii\log\DbTarget',
                ],
            ],
        ],
Run Code Online (Sandbox Code Playgroud)

要了解有关 yii 2 日志记录的更多信息,请参阅此处的文档