Chris@0: Chris@0: */ Chris@0: class Logger Chris@0: { Chris@0: /** Chris@0: * @var string $name Chris@0: */ Chris@0: protected $name; Chris@0: Chris@0: /** Chris@0: * @var IOInterface $inputOutput Chris@0: */ Chris@0: protected $inputOutput; Chris@0: Chris@0: /** Chris@0: * @param string $name Chris@0: * @param IOInterface $io Chris@0: */ Chris@0: public function __construct($name, IOInterface $io) Chris@0: { Chris@0: $this->name = $name; Chris@0: $this->inputOutput = $io; Chris@0: } Chris@0: Chris@0: /** Chris@0: * Log a debug message Chris@0: * Chris@0: * Messages will be output at the "very verbose" logging level (eg `-vv` Chris@0: * needed on the Composer command). Chris@0: * Chris@0: * @param string $message Chris@0: */ Chris@0: public function debug($message) Chris@0: { Chris@0: if ($this->inputOutput->isVeryVerbose()) { Chris@0: $message = " [{$this->name}] {$message}"; Chris@0: $this->log($message); Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * Log an informative message Chris@0: * Chris@0: * Messages will be output at the "verbose" logging level (eg `-v` needed Chris@0: * on the Composer command). Chris@0: * Chris@0: * @param string $message Chris@0: */ Chris@0: public function info($message) Chris@0: { Chris@0: if ($this->inputOutput->isVerbose()) { Chris@0: $message = " [{$this->name}] {$message}"; Chris@0: $this->log($message); Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * Log a warning message Chris@0: * Chris@0: * @param string $message Chris@0: */ Chris@0: public function warning($message) Chris@0: { Chris@0: $message = " [{$this->name}] {$message}"; Chris@0: $this->log($message); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Write a message Chris@0: * Chris@0: * @param string $message Chris@0: */ Chris@0: protected function log($message) Chris@0: { Chris@0: if (method_exists($this->inputOutput, 'writeError')) { Chris@0: $this->inputOutput->writeError($message); Chris@0: } else { Chris@0: // @codeCoverageIgnoreStart Chris@0: // Backwards compatiblity for Composer before cb336a5 Chris@0: $this->inputOutput->write($message); Chris@0: // @codeCoverageIgnoreEnd Chris@0: } Chris@0: } Chris@0: } Chris@0: // vim:sw=4:ts=4:sts=4:et: