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: