1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-07-31 10:20:14 +02:00

Store user in a temporary property instead of hacking it into the record

This commit is contained in:
Jordi Boggiano
2013-07-29 00:07:51 +02:00
parent e3e95f7dd6
commit e2e041eded
2 changed files with 19 additions and 5 deletions

View File

@@ -24,13 +24,14 @@ class PushoverHandler extends SocketHandler
private $token; private $token;
private $users; private $users;
private $title; private $title;
private $user;
private $highPriorityLevel; private $highPriorityLevel;
private $emergencyLevel; private $emergencyLevel;
/** /**
* @param string $token Pushover api token * @param string $token Pushover api token
* @param string $user Pushover user ids the message will be sent to * @param string|array $users Pushover user id or array of ids the message will be sent to
* @param string $title Title sent to the Pushover API * @param string $title Title sent to the Pushover API
* @param integer $level The minimum logging level at which this handler will be triggered * @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 * @param Boolean $bubble Whether the messages that are handled can bubble up the stack or not
@@ -69,7 +70,7 @@ class PushoverHandler extends SocketHandler
$dataArray = array( $dataArray = array(
'token' => $this->token, 'token' => $this->token,
'user' => $record['extra']['user'], 'user' => $this->user,
'message' => $message, 'message' => $message,
'title' => $this->title, 'title' => $this->title,
'timestamp' => $timestamp 'timestamp' => $timestamp
@@ -98,11 +99,13 @@ class PushoverHandler extends SocketHandler
public function write(array $record) public function write(array $record)
{ {
foreach ($this->users as $user) { foreach ($this->users as $user) {
$record['extra']['user'] = $user; $this->user = $user;
parent::write($record); parent::write($record);
$this->closeSocket(); $this->closeSocket();
} }
$this->user = null;
} }
public function setHighPriorityLevel($value) { public function setHighPriorityLevel($value) {

View File

@@ -102,6 +102,17 @@ class PushoverHandlerTest extends TestCase
$this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog&timestamp=\d{10}&priority=2$/', $content); $this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog&timestamp=\d{10}&priority=2$/', $content);
} }
public function testWriteToMultipleUsers()
{
$this->createHandler('myToken', array('userA', 'userB'));
$this->handler->handle($this->getRecord(Logger::EMERGENCY, 'test1'));
fseek($this->res, 0);
$content = fread($this->res, 1024);
$this->assertRegexp('/token=myToken&user=userA&message=test1&title=Monolog&timestamp=\d{10}&priority=2POST/', $content);
$this->assertRegexp('/token=myToken&user=userB&message=test1&title=Monolog&timestamp=\d{10}&priority=2$/', $content);
}
private function createHandler($token = 'myToken', $user = 'myUser', $title = 'Monolog') private function createHandler($token = 'myToken', $user = 'myUser', $title = 'Monolog')
{ {
$constructorArgs = array($token, $user, $title); $constructorArgs = array($token, $user, $title);