id = $data['id']; } public function processRequest() { $request = $this->getRequest(); $user = $request->getUser(); $log = id(new PhabricatorDaemonLog())->load($this->id); if (!$log) { return new Aphront404Response(); } $events = id(new PhabricatorDaemonLogEvent())->loadAllWhere( 'logID = %d ORDER BY id DESC LIMIT 200', $log->getID()); $content = array(); $argv = $log->getArgv(); $argv = implode("\n", $argv); $form = id(new AphrontFormView()) ->setUser($user) ->appendChild( id(new AphrontFormStaticControl()) ->setLabel('Daemon') ->setValue($log->getDaemon())) ->appendChild( id(new AphrontFormStaticControl()) ->setLabel('Host') ->setValue($log->getHost())) ->appendChild( id(new AphrontFormStaticControl()) ->setLabel('PID') ->setValue($log->getPID())) ->appendChild( id(new AphrontFormStaticControl()) ->setLabel('Started') ->setValue(date('F jS, Y g:i:s A', $log->getDateCreated()))) ->appendChild( id(new AphrontFormTextAreaControl()) ->setLabel('Argv') ->setValue($argv)); $panel = new AphrontPanelView(); $panel->setHeader('Daemon Details'); $panel->setWidth(AphrontPanelView::WIDTH_FORM); $panel->appendChild($form); $content[] = $panel; $rows = array(); foreach ($events as $event) { $rows[] = array( phutil_escape_html($event->getLogType()), date('M j, Y', $event->getEpoch()), date('g:i:s A', $event->getEpoch()), str_replace("\n", '
', phutil_escape_html($event->getMessage())), ); } $log_table = new AphrontTableView($rows); $log_table->setHeaders( array( 'Type', 'Date', 'Time', 'Message', )); $log_table->setColumnClasses( array( '', '', 'right', 'wide wrap', )); $log_panel = new AphrontPanelView(); $log_panel->setHeader('Daemon Logs'); $log_panel->appendChild($log_table); $content[] = $log_panel; return $this->buildStandardPageResponse( $content, array( 'title' => 'Log', )); } }