1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-07-30 18:00:17 +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 $users;
private $title;
private $user;
private $highPriorityLevel;
private $emergencyLevel;
/**
* @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 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
@@ -69,7 +70,7 @@ class PushoverHandler extends SocketHandler
$dataArray = array(
'token' => $this->token,
'user' => $record['extra']['user'],
'user' => $this->user,
'message' => $message,
'title' => $this->title,
'timestamp' => $timestamp
@@ -98,11 +99,13 @@ class PushoverHandler extends SocketHandler
public function write(array $record)
{
foreach ($this->users as $user) {
$record['extra']['user'] = $user;
$this->user = $user;
parent::write($record);
$this->closeSocket();
}
$this->user = null;
}
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);
}
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')
{
$constructorArgs = array($token, $user, $title);