1
0
mirror of https://github.com/Seldaek/monolog.git synced 2025-08-10 23:24:02 +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": { "require-dev": {
"phpunit/phpunit": "~4.5", "phpunit/phpunit": "~4.5",
"graylog2/gelf-php": "~1.0", "graylog2/gelf-php": "~1.0",
"raven/raven": "~0.8", "raven/raven": "~0.11",
"ruflin/elastica": ">=0.90 <3.0", "ruflin/elastica": ">=0.90 <3.0",
"doctrine/couchdb": "~1.0@dev", "doctrine/couchdb": "~1.0@dev",
"aws/aws-sdk-php": "^2.4.9", "aws/aws-sdk-php": "^2.4.9",

View File

@@ -145,13 +145,13 @@ class RavenHandler extends AbstractProcessingHandler
} else { } else {
$options['logger'] = $record['channel']; $options['logger'] = $record['channel'];
} }
if (!empty($record['extra']['checksum'])) { foreach ($this->getExtraParameters() as $key) {
$options['checksum'] = $record['extra']['checksum']; foreach (array('extra', 'context') as $source) {
unset($record['extra']['checksum']); if (!empty($record[$source][$key])) {
} $options[$key] = $record[$source][$key];
if (!empty($record['context']['checksum'])) { unset($record[$source][$key]);
$options['checksum'] = $record['context']['checksum']; }
unset($record['context']['checksum']); }
} }
if (!empty($record['context'])) { if (!empty($record['context'])) {
$options['extra']['context'] = $record['context']; $options['extra']['context'] = $record['context'];
@@ -194,4 +194,14 @@ class RavenHandler extends AbstractProcessingHandler
{ {
return new LineFormatter(); 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']); $this->assertEquals($tags, $ravenClient->lastData['tags']);
} }
public function testChecksum() public function testExtraParameters()
{ {
$ravenClient = $this->getRavenClient(); $ravenClient = $this->getRavenClient();
$handler = $this->getHandler($ravenClient); $handler = $this->getHandler($ravenClient);
$checksum = '098f6bcd4621d373cade4e832627b4f6'; $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); $handler->handle($record);
$this->assertEquals($checksum, $ravenClient->lastData['checksum']); $this->assertEquals($checksum, $ravenClient->lastData['checksum']);
$this->assertEquals($release, $ravenClient->lastData['release']);
} }
public function testUserContext() public function testUserContext()