1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-29 02:02:41 +01:00

Show logs to the console in 'phd debug'

Summary:
Currently we send logs to the logfile in 'phd debug', but we should send them to
the console instead.

Also fixed some %C stuff which could theoretically cause problems if a user had
percentage symbols in their paths (heaven forbid).

fratrik, this or D535 might have been involved in frustrating your efforts to
debug the "sudo" stuff.

Test Plan:
Ran "phd debug irc derpderp" and "phd launch irc derpderp". In the former case,
the exception appeared in the console. In the latter, it appeared in the log.

Reviewed By: codeblock
Reviewers: codeblock, jungejason, tuomaspelkonen, aran, fratrik
CC: aran, codeblock
Differential Revision: 536
This commit is contained in:
epriestley 2011-06-26 20:14:11 -07:00
parent 451b0e07dc
commit b61e325f05
2 changed files with 27 additions and 10 deletions

View file

@ -163,7 +163,15 @@ switch (isset($argv[1]) ? $argv[1] : 'help') {
$daemon = reset($match); $daemon = reset($match);
} }
will_launch($control); $with_logs = true;
if ($is_debug) {
// In debug mode, we emit errors straight to stdout, so nothing useful
// will show up in the logs. Don't echo the message about stuff showing
// up in them, since it would be confusing.
$with_logs = false;
}
will_launch($control, $with_logs);
if ($is_debug) { if ($is_debug) {
echo "Launching {$daemon} in debug mode (nondaemonized)...\n"; echo "Launching {$daemon} in debug mode (nondaemonized)...\n";
@ -217,10 +225,12 @@ function phd_load_tracked_repositories() {
return $repositories; return $repositories;
} }
function will_launch($control) { function will_launch($control, $with_logs = true) {
echo "Staging launch...\n"; echo "Staging launch...\n";
$control->pingConduit(); $control->pingConduit();
$log_dir = $control->getControlDirectory('log').'/daemons.log'; if ($with_logs) {
echo "NOTE: Logs will appear in '{$log_dir}'.\n\n"; $log_dir = $control->getControlDirectory('log').'/daemons.log';
echo "NOTE: Logs will appear in '{$log_dir}'.\n\n";
}
} }

View file

@ -216,17 +216,24 @@ EOHELP
"./launch_daemon.php ". "./launch_daemon.php ".
"%s ". "%s ".
"--load-phutil-library=%s ". "--load-phutil-library=%s ".
implode(' ', $extra_libraries)." ". "%C ".
"--conduit-uri=%s ". "--conduit-uri=%s ".
"--phd=%s ". "--phd=%s ".
"--log=%s ". ($debug ? '--trace ' : '--daemonize '),
($debug ? '--trace ' : '--daemonize ').
implode(' ', $argv),
$daemon, $daemon,
phutil_get_library_root('phabricator'), phutil_get_library_root('phabricator'),
implode(' ', $extra_libraries),
PhabricatorEnv::getURI('/api/'), PhabricatorEnv::getURI('/api/'),
$pid_dir, $pid_dir);
$log_dir);
if (!$debug) {
// If we're running "phd debug", send output straight to the console
// instead of to a logfile.
$command = csprintf("%C --log=%s", $command, $log_dir);
}
// Append the daemon's argv.
$command = csprintf("%C %C", $command, implode(' ', $argv));
if ($debug) { if ($debug) {
// Don't terminate when the user sends ^C; it will be sent to the // Don't terminate when the user sends ^C; it will be sent to the