Fixing Debugger::log() . The method used protected properties only available in test cases. No stack trace was being logged when called either. Method has been updated to match its doc block better.

Fixes #222
This commit is contained in:
mark_story 2009-10-29 19:47:29 -04:00
parent ad305a890a
commit a31a2d264c
2 changed files with 3 additions and 10 deletions

View file

@ -139,16 +139,8 @@ class Debugger extends Object {
*/
function log($var, $level = LOG_DEBUG) {
$_this = Debugger::getInstance();
$trace = $_this->trace(array('start' => 1, 'depth' => 2, 'format' => 'array'));
$source = null;
if (is_object($trace[0]['object']) && isset($trace[0]['object']->_reporter->_test_stack)) {
$stack = $trace[0]['object']->_reporter->_test_stack;
$source = sprintf('[%1$s, %3$s::%2$s()]' . "\n",
array_shift($stack), array_pop($stack), array_pop($stack));
}
CakeLog::write($level, $source . $_this->exportVar($var));
$source = $_this->trace(array('start' => 1)) . "\n";
CakeLog::write($level, "\n" . $source . $_this->exportVar($var));
}
/**

View file

@ -226,6 +226,7 @@ class DebuggerTest extends CakeTestCase {
Debugger::log(array('whatever', 'here'));
$result = file_get_contents(TMP . 'logs' . DS . 'debug.log');
$this->assertPattern('/DebuggerTest\:\:testLog/', $result);
$this->assertPattern('/\[main\]/', $result);
$this->assertPattern('/array/', $result);
$this->assertPattern('/"whatever",/', $result);
$this->assertPattern('/"here"/', $result);