[DoctrineMongoDBBundle] updated log format to look more like the javascript shell
This commit is contained in:
parent
da131a5890
commit
7503463a1e
@ -26,13 +26,7 @@ class DoctrineMongoDBLogger
|
|||||||
++$this->nbQueries;
|
++$this->nbQueries;
|
||||||
|
|
||||||
if (null !== $this->logger) {
|
if (null !== $this->logger) {
|
||||||
switch (key($query)) {
|
$this->logger->info(static::formatQuery($query));
|
||||||
case 'batchInsert':
|
|
||||||
$this->logger->info(Yaml::dump(array('data' => '[omitted]') + $query, 0));
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$this->logger->info(Yaml::dump($query, 0));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,4 +34,54 @@ class DoctrineMongoDBLogger
|
|||||||
{
|
{
|
||||||
return $this->nbQueries;
|
return $this->nbQueries;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Formats the supplied query array recursively.
|
||||||
|
*
|
||||||
|
* @param array $query All or part of a query array
|
||||||
|
*
|
||||||
|
* @return string A serialized object for the log
|
||||||
|
*/
|
||||||
|
static protected function formatQuery(array $query)
|
||||||
|
{
|
||||||
|
$parts = array();
|
||||||
|
|
||||||
|
$array = true;
|
||||||
|
foreach ($query as $key => $value) {
|
||||||
|
if (!is_numeric($key)) {
|
||||||
|
$array = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_scalar($value)) {
|
||||||
|
$formatted = json_encode($value);
|
||||||
|
} elseif (is_array($value)) {
|
||||||
|
$formatted = static::formatQuery($value);
|
||||||
|
} elseif ($value instanceof \MongoId) {
|
||||||
|
$formatted = 'ObjectId('.json_encode((string) $value).')';
|
||||||
|
} elseif ($value instanceof \MongoDate) {
|
||||||
|
$formatted = 'new Date('.date('r', $value->sec).')';
|
||||||
|
} elseif ($value instanceof \MongoRegex) {
|
||||||
|
$formatted = 'new RegExp('.json_encode($value->regex).', '.json_encode($value->flags).')';
|
||||||
|
} else {
|
||||||
|
$formatted = (string) $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
$parts[json_encode($key)] = $formatted;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (0 == count($parts)) {
|
||||||
|
return $array ? '[ ]' : '{ }';
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($array) {
|
||||||
|
return '[ '.implode(', ', $parts).' ]';
|
||||||
|
} else {
|
||||||
|
$mapper = function($key, $value)
|
||||||
|
{
|
||||||
|
return $key.': '.$value;
|
||||||
|
};
|
||||||
|
|
||||||
|
return '{ '.implode(', ', array_map($mapper, array_keys($parts), array_values($parts))).' }';
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user