3

新しいプロジェクトを実装するためにyiiフレームワークを使用しています。サーバーで実行する前にSQL文字列を確認したい。構成ファイルでこのコードをすでに有効にしていますが、それでも結果が得られません

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

Webページを実行するときに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

config / main.phpで、dbarrayの後に次のように追加します。

'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

文字列をファイルに記録する簡単なロガーを作成できます。

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

構成配列にはのキーがあり、その中にコンポーネントcomponentsを追加する必要があり、その中にはルートとして宣言することになっています。コンポーネントも必要になります。loglogCWebLogRoutepreloadlog

最小限の例(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 に答える