我正在尝试在Yii中设置数据库分析,因为我们在处理大量数据时遇到了一些问题。我正在使用这些说明进行设置:Yii 1.1: Configuring CWebLogRoute for DB profiling
这是我的代码的样子
的index.php
defined('YII_DEBUG') or define('YII_DEBUG',true );
//show profiler
defined('YII_DEBUG_SHOW_PROFILER') or define('YII_DEBUG_SHOW_PROFILER',true);
//enable profiling
defined('YII_DEBUG_PROFILING') or define('YII_DEBUG_PROFILING',true);
//trace level
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',0);
//execution time
defined('YII_DEBUG_DISPLAY_TIME') or define('YII_DEBUG_DISPLAY_TIME',false);
配置/ main.php
'db'=>array(
'connectionString' => 'mysql:host=******;dbname=******',
'emulatePrepare' => true,
'username' => '******',
'password' => '******',
'charset' => 'utf8',
'enableProfiling' => YII_DEBUG_PROFILING,
),
'authManager'=>array(
'class'=>'DbAuthManager',
'connectionID'=>'db',
'defaultRoles'=>array('guest')
),
'errorHandler'=>array(
'errorAction'=>$errorHandler,
),
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CFileLogRoute',
'enabled' =>YII_DEBUG_SHOW_PROFILER,
'levels'=>'error, warning',
),
),
),
在我完全设置之后,我在config / main.php文件中使用的常量得到了两个“Undefined Constant”错误。
由于那不起作用,我尝试将它们硬编码为TRUE,错误消失了,但没有任何反应。当我尝试CWebLogRoute时,我在屏幕上看不到任何内容,当我尝试CFileLogRoute时,我没有看到任何写入Yii日志的内容。
为什么这不能按预期工作的任何想法?或者我只是缺少输出的位置?
提前感谢您的帮助!
Yii版本:1.1.13
PHP:5.5.3
阿帕奇
MySQL的
答案 0 :(得分:1)
您需要指明如下所示登录DB
:
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CWebLogRoute',
'enabled' =>TRUE,
'categories' => 'system.db.*',
),
),
),
您还需要删除'levels'=>'error, warning',
行,该行仅记录errors
和warnings
。
您也可以同时拥有CFileLogRoute
和CWebLogRoute
:
'log'=>array(
'class'=>'CLogRouter',
'routes'=>array(
array(
'class'=>'CWebLogRoute',
'enabled' =>TRUE,
'categories' => 'system.db.*',
),
array(
'class'=>'CFileLogRoute',
'enabled' =>TRUE,
'categories' => 'system.db.*',
),
),
),