Plop
A simple logging library for PHP
Stream.php
1 <?php
2 /*
3  This file is part of Plop, a simple logging library for PHP.
4 
5  Copyright © 2010-2014 François Poirotte
6 
7  Plop is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  Plop is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with Plop. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 namespace Plop\Handler;
22 
32 {
34  protected $stream;
35 
37  protected static $stderr = null;
38 
46  public function __construct($stream = null)
47  {
48  if ($stream === null) {
49  if (self::$stderr === null) {
50  self::$stderr = fopen('php://stderr', 'w');
51  }
52  $stream = self::$stderr;
53  }
54 
55  parent::__construct();
56  $this->stream = $stream;
57  }
58 
65  protected function flush()
66  {
67  if (is_resource($this->stream)) {
68  fflush($this->stream);
69  }
70  }
71 
73  protected function emit(\Plop\RecordInterface $record)
74  {
75  $msg = $this->format($record);
76  fprintf($this->stream, "%s\n", $msg);
77  $this->flush();
78  }
79 }
An abstract class that can be used as a base to create new log records handlers.
static $stderr
A stream referencing STDERR.
Definition: Stream.php:37
Interface for a log record.
format(\Plop\RecordInterface $record)
$stream
The stream where log messages will be write to.
Definition: Stream.php:34
__construct($stream=null)
Definition: Stream.php:46
An handler that writes log messages to a PHP stream.
Definition: Stream.php:31
emit(\Plop\RecordInterface $record)
Definition: Stream.php:73