コード例 #1
0
 function targetFinished(BuildEvent $event)
 {
     $msg .= PHP_EOL . "Target time: " . self::formatTime(Phing::currentTimeMillis() - $this->targetStartTime) . PHP_EOL;
     $event->setMessage($msg, Project::MSG_INFO);
     $this->messageLogged($event);
     $this->targetName = null;
 }
コード例 #2
0
ファイル: JsonLogger.php プロジェクト: Ingewikkeld/phing
 /**
  * Fired when the build finishes, this adds the time taken and any
  * error stacktrace to the build element and writes the document to disk.
  *
  * @param BuildEvent $event An event with any relevant extra information.
  *                          Will not be <code>null</code>.
  * @throws BuildException
  */
 public function buildFinished(BuildEvent $event)
 {
     $elapsedTime = Phing::currentTimeMillis() - $this->getBuildTimerStart();
     $this->getBuildElement()->setAttribute(XmlLogger::TIME_ATTR, DefaultLogger::formatTime($elapsedTime));
     if ($event->getException() != null) {
         $this->getBuildElement()->setAttribute(XmlLogger::ERROR_ATTR, $event->getException()->getMessage());
         $errText = $this->getDoc()->createCDATASection($event->getException()->getTraceAsString());
         $stacktrace = $this->getDoc()->createElement(XmlLogger::STACKTRACE_TAG);
         $stacktrace->appendChild($errText);
         $this->getBuildElement()->appendChild($stacktrace);
     }
     $this->getDoc()->appendChild($this->getBuildElement());
     $outFilename = $event->getProject()->getProperty("JsonLogger.file");
     if ($outFilename == null) {
         $outFilename = "log.json";
     }
     try {
         $stream = $this->getOut();
         if ($stream === null) {
             $stream = new FileOutputStream($outFilename);
         }
         $writer = new OutputStreamWriter($stream);
         $writer->write($this->xml2js(simplexml_import_dom($this->getDoc())));
         $writer->close();
     } catch (IOException $exc) {
         try {
             $stream->close();
             // in case there is a stream open still ...
         } catch (Exception $x) {
         }
         throw new BuildException("Unable to write log file.", $exc);
     }
     // cleanup:remove the buildElement
     $this->setBuildElement(null);
     array_pop($this->getElementStack());
     array_pop($this->getTimesStack());
 }
コード例 #3
0
 /**
  *  Logs whether the build succeeded or failed, and any errors that
  *  occured during the build. Also outputs the total build-time.
  *
  * @param  BuildEvent  The BuildEvent
  *
  * @see    BuildEvent::getException()
  */
 public function buildFinished(BuildEvent $event)
 {
     $error = $event->getException();
     if ($error === null) {
         $msg = "Finished successful build.";
     } else {
         $msg = "Build failed. [reason: " . $error->getMessage() . "]";
     }
     $this->logger()->log($msg . " Total time: " . DefaultLogger::formatTime(Phing::currentTimeMillis() - $this->startTime));
 }
コード例 #4
0
 /**
  *  Prints whether the build succeeded or failed, and any errors that
  *  occured during the build. Also outputs the total build-time.
  *
  *  @param  object  The BuildEvent
  *  @see    BuildEvent::getException()
  */
 public function buildFinished(BuildEvent $event)
 {
     $error = $event->getException();
     if ($error === null) {
         $msg = PHP_EOL . $this->getBuildSuccessfulMessage() . PHP_EOL;
     } else {
         $msg = PHP_EOL . $this->getBuildFailedMessage() . PHP_EOL;
         if (Project::MSG_VERBOSE <= $this->msgOutputLevel || !$error instanceof BuildException) {
             $msg .= $error->__toString() . PHP_EOL;
         } else {
             $msg .= $error->getMessage();
         }
     }
     $msg .= PHP_EOL . "Total time: " . self::formatTime(Phing::currentTimeMillis() - $this->startTime) . PHP_EOL;
     if ($error === null) {
         $this->printMessage($msg, $this->out, Project::MSG_VERBOSE);
     } else {
         $this->printMessage($msg, $this->err, Project::MSG_ERR);
     }
 }
コード例 #5
0
ファイル: TouchTask.php プロジェクト: tammyd/phing
 /**
  * Does the actual work.
  */
 public function _touch()
 {
     if ($this->file !== null) {
         if (!$this->file->exists()) {
             $this->log("Creating " . $this->file->__toString(), Project::MSG_INFO);
             try {
                 // try to create file
                 $this->file->createNewFile();
             } catch (IOException $ioe) {
                 throw new BuildException("Error creating new file " . $this->file->__toString(), $ioe, $this->location);
             }
         }
     }
     $resetMillis = false;
     if ($this->millis < 0) {
         $resetMillis = true;
         $this->millis = Phing::currentTimeMillis();
     }
     if ($this->file !== null) {
         $this->touchFile($this->file);
     }
     // deal with the filesets
     foreach ($this->filesets as $fs) {
         $ds = $fs->getDirectoryScanner($this->getProject());
         $fromDir = $fs->getDir($this->getProject());
         $srcFiles = $ds->getIncludedFiles();
         $srcDirs = $ds->getIncludedDirectories();
         for ($j = 0, $_j = count($srcFiles); $j < $_j; $j++) {
             $this->touchFile(new PhingFile($fromDir, (string) $srcFiles[$j]));
         }
         for ($j = 0, $_j = count($srcDirs); $j < $_j; $j++) {
             $this->touchFile(new PhingFile($fromDir, (string) $srcDirs[$j]));
         }
     }
     if ($resetMillis) {
         $this->millis = -1;
     }
 }
コード例 #6
0
ファイル: RecorderEntry.php プロジェクト: Ingewikkeld/phing
 /** {@inheritDoc}. */
 public function targetFinished(BuildEvent $event)
 {
     $this->log("<< TARGET FINISHED -- " . $event->getTarget()->getName(), Project::MSG_DEBUG);
     $time = $this->formatTime(Phing::currentTimeMillis() - $this->targetStartTime);
     $this->log($event->getTarget()->getName() . ":  duration " . $time, Project::MSG_VERBOSE);
     flush();
 }
コード例 #7
0
ファイル: XmlLogger.php プロジェクト: codebubb/web_ssh
 /**
  * Fired when a task finishes building, this adds the time taken
  * to the appropriate task element in the log.
  *
  * @param BuildEvent $event An event with any relevant extra information.
  *                          Will not be <code>null</code>.
  */
 public function taskFinished(BuildEvent $event)
 {
     $taskTimerStart = array_pop($this->timesStack);
     $taskElement = array_pop($this->elementStack);
     $elapsedTime = Phing::currentTimeMillis() - $taskTimerStart;
     $taskElement->setAttribute(XmlLogger::TIME_ATTR, DefaultLogger::formatTime($elapsedTime));
     $parentElement = $this->elementStack[count($this->elementStack) - 1];
     $parentElement->appendChild($taskElement);
 }
コード例 #8
0
 /**
 *  Prints whether the build failed, and any errors that occured during 
 the build. Also outputs the total build-time on completion.
 *
 *  @param  object  The BuildEvent
 *  @access public
 *  @see    BuildEvent::getException()
 */
 function buildFinished(BuildEvent $event)
 {
     $error = $event->getException();
     if ($error !== null) {
         print $this->lSep . "BUILD FAILED" . $this->lSep;
         if (PROJECT_MSG_VERBOSE <= $this->msgOutputLevel || !$error instanceof BuildException) {
             print $error->__toString() . $this->lSep;
         } else {
             print $error->getMessage();
         }
     }
     print $this->lSep . "Total time: " . $this->_formatTime(Phing::currentTimeMillis() - $this->startTime) . $this->lSep;
 }
コード例 #9
0
ファイル: ProfileLogger.php プロジェクト: Ingewikkeld/phing
 private function logFinish(BuildEvent $event, $start, $name)
 {
     $msg = null;
     if ($start != null) {
         $diff = self::formatTime(Phing::currentTimeMillis() - $start);
         $msg = Phing::getProperty("line.separator") . $name . ": finished " . date(self::$dateFormat, time()) . " (" . $diff . ")";
     } else {
         $msg = Phing::getProperty("line.separator") . $name . ": finished " . date(self::$dateFormat, time()) . " (unknown duration, start not detected)";
     }
     $this->printMessage($msg, $this->out, $event->getPriority());
 }
コード例 #10
0
 /**
  * Fired when a task finishes building, this adds the time taken
  * to the appropriate task element in the log.
  *
  * @param BuildEvent An event with any relevant extra information.
  *              Will not be <code>null</code>.
  */
 function taskFinished(BuildEvent $event)
 {
     $task = $event->getTask();
     $elapsedTime = Phing::currentTimeMillis() - $this->taskTimerStart;
     $this->taskElement->setAttribute(XmlLogger::TIME_ATTR, DefaultLogger::_formatTime($elapsedTime));
     $this->targetElement->appendChild($this->taskElement);
 }