Debugging 不带stacktrace的CakePHP中的debug.log

Debugging 不带stacktrace的CakePHP中的debug.log,debugging,cakephp,cakephp-2.0,Debugging,Cakephp,Cakephp 2.0,我使用以下命令将变量值记录到debug.log中: $var = 'Hello World'; debugger::log($var); 在my/app/tmp/logs/debug.log中,有该日志的整个堆栈跟踪: 2014-03-24 20:47:42 Debug: UserController::create() - APP\Controller\UserController.php, line 21 ReflectionMethod::invokeArgs() - [interna

我使用以下命令将变量值记录到debug.log中:

$var = 'Hello World';
debugger::log($var);
在my
/app/tmp/logs/debug.log
中,有该日志的整个堆栈跟踪:

2014-03-24 20:47:42 Debug: 
UserController::create() - APP\Controller\UserController.php, line 21
ReflectionMethod::invokeArgs() - [internal], line ??
Controller::invokeAction() - CORE\Cake\Controller\Controller.php, line 490
Dispatcher::_invoke() - CORE\Cake\Routing\Dispatcher.php, line 185
Dispatcher::dispatch() - CORE\Cake\Routing\Dispatcher.php, line 160
[main] - APP\webroot\index.php, line 108
'Hello World'

我不需要stacktrace,只需要变量的值。

解决方案之一是使用CakeLog::write函数

CakeLog::write(LOG_DEBUG, "your message");
您将获得debug.log文件的输出:

2014-07-21 16:08:25 Debug:
your message

无法从调试器::log($var)中删除堆栈跟踪。为什么?以下是Debugger.php中的CakePHP代码:

public static function log($var, $level = LOG_DEBUG, $depth = 3) {
    $source = self::trace(array('start' => 1)) . "\n";
    CakeLog::write($level, "\n" . $source . self::exportVar($var, $depth));
}

或者编辑CakePHP源代码:)

我认为您使用的是cake的调试器插件。。您是否尝试过简单的$this->log($var)@Anand Ghaywankar语句“$this->log($var);”登录到error.log。我想登录到debug.log。