Path: blob/master/src/infrastructure/log/PhabricatorSSHLog.php
12241 views
<?php12final class PhabricatorSSHLog extends Phobject {34private static $log;56public static function getLog() {7if (!self::$log) {8$path = PhabricatorEnv::getEnvConfig('log.ssh.path');9$format = PhabricatorEnv::getEnvConfig('log.ssh.format');10$format = nonempty(11$format,12"[%D]\t%p\t%h\t%r\t%s\t%S\t%u\t%C\t%U\t%c\t%T\t%i\t%o");1314// NOTE: Path may be null. We still create the log, it just won't write15// anywhere.1617$data = array(18'D' => date('r'),19'h' => php_uname('n'),20'p' => getmypid(),21'e' => time(),22'I' => PhabricatorEnv::getEnvConfig('cluster.instance'),23);2425$sudo_user = PhabricatorEnv::getEnvConfig('phd.user');26if ($sudo_user !== null && strlen($sudo_user)) {27$data['S'] = $sudo_user;28}2930if (function_exists('posix_geteuid')) {31$system_uid = posix_geteuid();32$system_info = posix_getpwuid($system_uid);33$data['s'] = idx($system_info, 'name');34}3536$client = getenv('SSH_CLIENT');37if (strlen($client)) {38$remote_address = head(explode(' ', $client));39$data['r'] = $remote_address;40}4142$log = id(new PhutilDeferredLog($path, $format))43->setFailQuietly(true)44->setData($data);4546self::$log = $log;47}4849return self::$log;50}5152}535455