我使用以下命令将变量值记录到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'
我不需要堆栈跟踪,只需要我变量的值。
答案 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源:)