Merge pull request #7166 from nextcloud/enhancement/crash-report-context

Pass the exception context to the crash reporter
This commit is contained in:
Morris Jobke 2017-11-14 15:07:33 +01:00 committed by GitHub
commit 16549ae5fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 13 additions and 9 deletions

View File

@ -352,7 +352,7 @@ class Log implements ILogger {
$msg .= ': ' . json_encode($data); $msg .= ': ' . json_encode($data);
$this->log($level, $msg, $context); $this->log($level, $msg, $context);
if (!is_null($this->crashReporters)) { if (!is_null($this->crashReporters)) {
$this->crashReporters->delegateReport($exception); $this->crashReporters->delegateReport($exception, $context);
} }
} }

View File

@ -45,10 +45,12 @@ class Registry implements IRegistry {
* Delegate crash reporting to all registered reporters * Delegate crash reporting to all registered reporters
* *
* @param Exception|Throwable $exception * @param Exception|Throwable $exception
* @param array $context
*/ */
public function delegateReport($exception) { public function delegateReport($exception, array $context = []) {
/** @var IReporter $reporter */
foreach ($this->reporters as $reporter) { foreach ($this->reporters as $reporter) {
$reporter->report($exception); $reporter->report($exception, $context);
} }
} }

View File

@ -43,6 +43,7 @@ interface IRegistry {
* *
* @since 13.0.0 * @since 13.0.0
* @param Exception|Throwable $exception * @param Exception|Throwable $exception
* @param array $context
*/ */
public function delegateReport($exception); public function delegateReport($exception, array $context = []);
} }

View File

@ -35,6 +35,7 @@ interface IReporter {
* *
* @since 13.0.0 * @since 13.0.0
* @param Exception|Throwable $exception * @param Exception|Throwable $exception
* @param array $context
*/ */
public function report($exception); public function report($exception, array $context = []);
} }

View File

@ -90,7 +90,7 @@ class LoggerTest extends TestCase {
$e = new \Exception('test'); $e = new \Exception('test');
$this->registry->expects($this->once()) $this->registry->expects($this->once())
->method('delegateReport') ->method('delegateReport')
->with($e); ->with($e, []);
$this->logger->logException($e); $this->logger->logException($e);
@ -109,7 +109,7 @@ class LoggerTest extends TestCase {
$e = new \Exception('test'); $e = new \Exception('test');
$this->registry->expects($this->once()) $this->registry->expects($this->once())
->method('delegateReport') ->method('delegateReport')
->with($e); ->with($e, []);
$this->logger->logException($e); $this->logger->logException($e);
@ -128,7 +128,7 @@ class LoggerTest extends TestCase {
$e = new \Exception('test'); $e = new \Exception('test');
$this->registry->expects($this->once()) $this->registry->expects($this->once())
->method('delegateReport') ->method('delegateReport')
->with($e); ->with($e, []);
$this->logger->logException($e); $this->logger->logException($e);
@ -147,7 +147,7 @@ class LoggerTest extends TestCase {
$e = new \Exception('test'); $e = new \Exception('test');
$this->registry->expects($this->once()) $this->registry->expects($this->once())
->method('delegateReport') ->method('delegateReport')
->with($e); ->with($e, []);
$this->logger->logException($e); $this->logger->logException($e);