CakePHP中的debug.log没有堆栈跟踪

时间:2014-03-24 19:49:36

标签: debugging cakephp cakephp-2.0

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

$var = 'Hello World';
debugger::log($var);

在我的/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'

我不需要堆栈跟踪,只需要我变量的值。

1 个答案:

答案 0 :(得分:1)

其中一个解决方案是使用CakeLog :: write function

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源:)