1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-09 06:36:46 +02:00

Merge pull request #631 from prgTW/feat/raven-extra-parameters

RavenHandler supports extra parameters
This commit is contained in:
Jordi Boggiano
2015-08-17 17:40:30 +01:00
3 changed files with 22 additions and 10 deletions

View File

@@ -19,7 +19,7 @@
"require-dev": {
"phpunit/phpunit": "~4.5",
"graylog2/gelf-php": "~1.0",
"raven/raven": "~0.8",
"raven/raven": "~0.11",
"ruflin/elastica": ">=0.90 <3.0",
"doctrine/couchdb": "~1.0@dev",
"aws/aws-sdk-php": "^2.4.9",

View File

@@ -145,13 +145,13 @@ class RavenHandler extends AbstractProcessingHandler
} else {
$options['logger'] = $record['channel'];
}
if (!empty($record['extra']['checksum'])) {
$options['checksum'] = $record['extra']['checksum'];
unset($record['extra']['checksum']);
}
if (!empty($record['context']['checksum'])) {
$options['checksum'] = $record['context']['checksum'];
unset($record['context']['checksum']);
foreach ($this->getExtraParameters() as $key) {
foreach (array('extra', 'context') as $source) {
if (!empty($record[$source][$key])) {
$options[$key] = $record[$source][$key];
unset($record[$source][$key]);
}
}
}
if (!empty($record['context'])) {
$options['extra']['context'] = $record['context'];
@@ -194,4 +194,14 @@ class RavenHandler extends AbstractProcessingHandler
{
return new LineFormatter();
}
/**
* Gets extra parameters supported by Raven that can be found in "extra" and "context"
*
* @return array
*/
protected function getExtraParameters()
{
return array('checksum', 'release');
}
}

View File

@@ -85,16 +85,18 @@ class RavenHandlerTest extends TestCase
$this->assertEquals($tags, $ravenClient->lastData['tags']);
}
public function testChecksum()
public function testExtraParameters()
{
$ravenClient = $this->getRavenClient();
$handler = $this->getHandler($ravenClient);
$checksum = '098f6bcd4621d373cade4e832627b4f6';
$record = $this->getRecord(Logger::INFO, 'test', array('checksum' => $checksum));
$release = '05a671c66aefea124cc08b76ea6d30bb';
$record = $this->getRecord(Logger::INFO, 'test', array('checksum' => $checksum, 'release' => $release));
$handler->handle($record);
$this->assertEquals($checksum, $ravenClient->lastData['checksum']);
$this->assertEquals($release, $ravenClient->lastData['release']);
}
public function testUserContext()