in src/serviceprofiler/PhutilServiceProfiler.php [84:206]
public static function echoListener($type, $id, $data) {
$is_begin = false;
$is_end = false;
switch ($type) {
case 'begin':
$is_begin = true;
$mark = '>>>';
break;
case 'end':
$is_end = true;
$mark = '<<<';
break;
default:
$mark = null;
break;
}
$type = idx($data, 'type', 'mystery');
$desc = null;
if ($is_begin) {
switch ($type) {
case 'connect':
$desc = $data['database'];
break;
case 'query':
$desc = substr($data['query'], 0, 512);
break;
case 'multi-query':
$desc = array();
foreach ($data['queries'] as $query) {
$desc[] = substr($query, 0, 256);
}
$desc = implode('; ', $desc);
break;
case 'unit':
$desc = $data['engine'];
break;
case 'exec':
$desc = '$ '.$data['command'];
break;
case 'conduit':
if (isset($data['size'])) {
$desc = $data['method'].'() ';
$desc .= pht('<bytes = %s>', new PhutilNumber($data['size']));
} else {
$desc = $data['method'].'()';
}
break;
case 'http':
if (isset($data['proxy'])) {
$proxy = phutil_censor_credentials($data['proxy']);
} else {
$proxy = null;
}
$uri = phutil_censor_credentials($data['uri']);
if (strlen($proxy)) {
$desc = "{$proxy} >> {$uri}";
} else {
$desc = $uri;
}
break;
case 'lint':
$desc = $data['linter'];
if (isset($data['paths'])) {
$desc .= ' '.pht('<paths = %s>', phutil_count($data['paths']));
}
break;
case 'lock':
$desc = $data['name'];
break;
case 'event':
$desc = $data['kind'].' ';
$desc .= pht('<listeners = %s>', new PhutilNumber($data['count']));
break;
case 'ldap':
$call = idx($data, 'call', '?');
$params = array();
switch ($call) {
case 'connect':
$params[] = $data['host'].':'.$data['port'];
break;
case 'start-tls':
break;
case 'bind':
$params[] = $data['user'];
break;
case 'search':
$params[] = $data['dn'];
$params[] = $data['query'];
break;
default:
$params[] = '?';
break;
}
$desc = "{$call} (".implode(', ', $params).")";
break;
}
} else if ($is_end) {
$desc = pht(
'%s us',
new PhutilNumber((int)(1000000 * $data['duration'])));
}
$instance = self::getInstance();
if (!$instance->zeroTime) {
$instance->zeroTime = microtime(true);
}
$elapsed = microtime(true) - $instance->zeroTime;
$console = PhutilConsole::getConsole();
$console->writeLog(
"%s [%s] (+%s) <%s> %s\n",
$mark,
$id,
pht('%s', new PhutilNumber((int)(1000 * $elapsed))),
$type,
self::escapeProfilerStringForDisplay($desc));
}