syslog + maillog in task / task-manager as service

fix task interfaces / cleanup
fix tests using task manager
This commit is contained in:
jygaulier
2012-12-18 12:10:24 +01:00
parent 7f36edb830
commit 2d6e087104
33 changed files with 1020 additions and 1846 deletions

View File

@@ -44,11 +44,11 @@ class module_console_taskrun extends Command
, task_abstract::RUNNER_MANUAL
);
$this->addOption(
'nolog'
, NULL
, 1 | InputOption::VALUE_NONE
, 'do not log to logfile'
, NULL
'ttylogLevel'
, 't'
, InputOption::VALUE_REQUIRED
, 'threshold : (DEBUG|INFO|WARNING|ERROR|CRITICAL|ALERT)'
, ''
);
$this->setDescription('Run task');
@@ -74,7 +74,8 @@ class module_console_taskrun extends Command
throw new \RuntimeException('Argument must be an Id.');
}
$task_manager = new task_manager($this->container);
$task_manager = $this->container['task-manager'];
$logger = $task_manager->getLogger();
if ($input->getOption('runner') === task_abstract::RUNNER_MANUAL) {
$schedStatus = $task_manager->getSchedulerState();
@@ -102,6 +103,44 @@ class module_console_taskrun extends Command
$this->container['monolog']->pushHandler($handler);
$this->task = $task_manager->getTask($task_id, $this->container['monolog']);
$lib2v = array(
'DEBUG' => task_abstract::LOG_DEBUG,
'INFO' => task_abstract::LOG_INFO,
'WARNING' => task_abstract::LOG_WARNING,
'ERROR' => task_abstract::LOG_ERROR,
'CRITICAL' => task_abstract::LOG_CRITICAL,
'ALERT' => task_abstract::LOG_ALERT
);
$tmpTask = $task_manager->getTask($task_id, null);
$taskname = $tmpTask->getName();
unset($tmpTask);
// log to tty ?
if(($ttylogLevel = strtoupper($input->getOption('ttylogLevel'))) != '') {
if (!array_key_exists($ttylogLevel, $lib2v)) {
throw(new RuntimeException(sprintf(
"Bad value '%s' for option loglevel\nuse DEBUG|INFO|WARNING|ERROR|CRITICAL|ALERT", $ttylogLevel))
);
}
$handler = new Handler\StreamHandler(
"php://stdout",
$lib2v[$ttylogLevel],
true
);
$logger->pushHandler($handler);
}
$logfile = __DIR__ . '/../../../../logs/task_' . $task_id . '.log';
$handler = new Handler\RotatingFileHandler($logfile, 10); //, $lib2v[$loglevelOption], true);
$logger->pushHandler($handler);
$this->task = $task_manager->getTask($task_id, $logger);
register_tick_function(array($this, 'tick_handler'), true);
declare(ticks = 1);