1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-10-21 00:26:10 +02:00

Initial version

This commit is contained in:
Pablo Belloc
2012-02-25 20:37:04 -03:00
parent 6c15897ac7
commit 486cbb78ab
8 changed files with 516 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
<?php
/**
* @author Pablo de Leon Belloc <pablolb@gmail.com>
*/
namespace Monolog\Handler;
use Monolog\Handler\SocketHandler\Socket;
use Monolog\Handler\SocketHandler\PersistentSocket;
use Monolog\Logger;
/**
* Stores to any socket - uses fsockopen() or pfsockopen().
*
* @see Monolog\Handler\SocketHandler\Socket
* @see Monolog\Handler\SocketHandler\PersistentSocket
* @see http://php.net/manual/en/function.fsockopen.php
*/
class SocketHandler extends AbstractProcessingHandler
{
/**
* @var Socket
*/
private $socket;
/**
* @param string $connectionString
* @param integer $level The minimum logging level at which this handler will be triggered
* @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not
*/
public function __construct($connectionString, $level = Logger::DEBUG, $bubble = true)
{
parent::__construct($level, $bubble);
$this->socket = new Socket($connectionString);
}
/**
* Inject socket - allows you to configure timeouts.
*
* @param Socket $socket
*/
public function setSocket(Socket $socket)
{
$this->socket = $socket;
}
/**
* We will not close a PersistentSocket instance so it can be reused in other requests.
*/
public function close()
{
if ($this->socket instanceof PersistentSocket) {
return;
}
$this->socket->close();
}
/**
* {@inheritdoc}
*/
protected function write(array $record)
{
$this->socket->write((string) $record['formatted']);
}
}