mirror of
https://github.com/Seldaek/monolog.git
synced 2025-08-02 19:27:37 +02:00
Add logging of exception line and file path to gelf message
This commit is contained in:
@@ -89,6 +89,13 @@ class GelfMessageFormatter extends NormalizerFormatter
|
|||||||
$message->setAdditional($this->contextPrefix . $key, is_scalar($val) ? $val : $this->toJson($val));
|
$message->setAdditional($this->contextPrefix . $key, is_scalar($val) ? $val : $this->toJson($val));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (null === $message->getFile() && isset($record['context']['exception'])) {
|
||||||
|
if (preg_match("/^(.+):([0-9]+)$/", $record['context']['exception']['file'], $matches)) {
|
||||||
|
$message->setFile($matches[1]);
|
||||||
|
$message->setLine($matches[2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $message;
|
return $message;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -119,6 +119,35 @@ class GelfMessageFormatterTest extends \PHPUnit_Framework_TestCase
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @covers Monolog\Formatter\GelfMessageFormatter::format
|
||||||
|
*/
|
||||||
|
public function testFormatWithContextContainingException()
|
||||||
|
{
|
||||||
|
$formatter = new GelfMessageFormatter();
|
||||||
|
$record = array(
|
||||||
|
'level' => Logger::ERROR,
|
||||||
|
'level_name' => 'ERROR',
|
||||||
|
'channel' => 'meh',
|
||||||
|
'context' => array('from' => 'logger', 'exception' => [
|
||||||
|
'class' => '\Exception',
|
||||||
|
'file' => '/some/file/in/dir.php:56',
|
||||||
|
'trace' => ['/some/file/1.php:23', '/some/file/2.php:3']
|
||||||
|
]),
|
||||||
|
'datetime' => new \DateTime("@0"),
|
||||||
|
'extra' => array(),
|
||||||
|
'message' => 'log'
|
||||||
|
);
|
||||||
|
|
||||||
|
$message = $formatter->format($record);
|
||||||
|
|
||||||
|
$this->assertInstanceOf('Gelf\Message', $message);
|
||||||
|
|
||||||
|
$this->assertEquals("/some/file/in/dir.php", $message->getFile());
|
||||||
|
$this->assertEquals("56", $message->getLine());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @covers Monolog\Formatter\GelfMessageFormatter::format
|
* @covers Monolog\Formatter\GelfMessageFormatter::format
|
||||||
*/
|
*/
|
||||||
|
Reference in New Issue
Block a user