新しいプロジェクトを実装するためにyiiフレームワークを使用しています。サーバーで実行する前にSQL文字列を確認したい。構成ファイルでこのコードをすでに有効にしていますが、それでも結果が得られません
array('class'=>'CWebLogRoute',),
Webページを実行するときにSQL文字列を表示するにはどうすればよいですか?
これをmain.php(config)のコンポーネントの下に配置してみてください。
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
'weblogging'=>array(
'class'=>'CWebLogRoute',
'enabled'=>true,
),
),
),
次に、そのページで実行されたすべてのSQLとともにデバッグ情報が表示されます。
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.*',
),
),
)
文字列をファイルに記録する簡単なロガーを作成できます。
$file = fopen("my.log", "a+");
fwrite($file, $logString."\r\n");
fclose($file);
構成配列にはのキーがあり、その中にコンポーネントcomponents
を追加する必要があり、その中にはルートとして宣言することになっています。コンポーネントも必要になります。log
log
CWebLogRoute
preload
log
最小限の例(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 ...
)
),
// ...
)
);
ロギングに関するその他のヒントについては、ガイドをお読みください。