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:
@@ -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) {
|
||||||
|
@@ -102,6 +102,17 @@ class PushoverHandlerTest extends TestCase
|
|||||||
$this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\d{10}&priority=2$/', $content);
|
$this->assertRegexp('/token=myToken&user=myUser&message=test1&title=Monolog×tamp=\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×tamp=\d{10}&priority=2POST/', $content);
|
||||||
|
$this->assertRegexp('/token=myToken&user=userB&message=test1&title=Monolog×tamp=\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);
|
||||||
|
Reference in New Issue
Block a user