Optional parameter is {@link $target}. The default target is Stdout.

*

Note: Use this Appender with command-line php scripts. * On web scripts this appender has no effects.

*

This appender requires a layout.

* * @author Marco Vassura * @author Knut Urdalen * @version $Revision: 635069 $ * @package log4php * @subpackage appender */ class LoggerAppenderConsole extends LoggerAppenderSkeleton { const STDOUT = 'php://stdout'; const STDERR = 'php://stderr'; /** * Can be 'php://stdout' or 'php://stderr'. But it's better to use keywords STDOUT and STDERR (case insensitive). * Default is STDOUT * @var string */ protected $target = 'php://stdout'; /** * @var boolean * @access private */ protected $requiresLayout = true; /** * @var mixed the resource used to open stdout/stderr * @access private */ protected $fp = false; /** * Set console target. * @param mixed $value a constant or a string */ public function setTarget($value) { $v = trim($value); if ($v == self::STDOUT || strtoupper($v) == 'STDOUT') { $this->target = self::STDOUT; } elseif ($v == self::STDERR || strtoupper($v) == 'STDERR') { $target = self::STDERR; } else { LoggerLog::debug("Invalid target. Using '".self::STDOUT."' by default."); } } public function getTarget() { return $this->target; } public function activateOptions() { $this->fp = fopen($this->getTarget(), 'w'); if($this->fp !== false && $this->layout !== null) { fwrite($this->fp, $this->layout->getHeader()); } $this->closed = (bool)($this->fp === false); } /** * @see LoggerAppender::close() */ public function close() { if ($this->fp && $this->layout !== null) { fwrite($this->fp, $this->layout->getFooter()); fclose($this->fp); } $this->closed = true; } protected function append($event) { if ($this->fp && $this->layout !== null) { fwrite($this->fp, $this->layout->format($event)); } } }