Merge pull request #21705 from owncloud/improve-background-job-message
Improve background job error message
This commit is contained in:
commit
807cf750b3
|
@ -52,7 +52,10 @@ abstract class Job implements IJob {
|
|||
$this->run($this->argument);
|
||||
} catch (\Exception $e) {
|
||||
if ($logger) {
|
||||
$logger->error('Error while running background job: ' . $e->getMessage());
|
||||
$logger->logException($e, [
|
||||
'app' => 'core',
|
||||
'message' => 'Error while running background job (class: ' . get_class($this) . ', arguments: ' . print_r($this->argument, true) . ')'
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -285,6 +285,8 @@ class Log implements ILogger {
|
|||
'Line' => $exception->getLine(),
|
||||
);
|
||||
$exception['Trace'] = preg_replace('!(login|checkPassword)\(.*\)!', '$1(*** username and password replaced ***)', $exception['Trace']);
|
||||
$this->error('Exception: ' . json_encode($exception), $context);
|
||||
$msg = isset($context['message']) ? $context['message'] : 'Exception';
|
||||
$msg .= ': ' . json_encode($exception);
|
||||
$this->error($msg, $context);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -125,6 +125,14 @@ interface ILogger {
|
|||
|
||||
/**
|
||||
* Logs an exception very detailed
|
||||
* An additional message can we written to the log by adding it to the
|
||||
* context.
|
||||
*
|
||||
* <code>
|
||||
* $logger->logException($ex, [
|
||||
* 'message' => 'Exception during cron job execution'
|
||||
* ]);
|
||||
* </code>
|
||||
*
|
||||
* @param \Exception $exception
|
||||
* @param array $context
|
||||
|
|
|
@ -18,8 +18,9 @@ class Job extends \Test\TestCase {
|
|||
|
||||
public function testRemoveAfterException() {
|
||||
$jobList = new DummyJobList();
|
||||
$job = new TestJob($this, function () {
|
||||
throw new \Exception();
|
||||
$e = new \Exception();
|
||||
$job = new TestJob($this, function () use ($e) {
|
||||
throw $e;
|
||||
});
|
||||
$jobList->add($job);
|
||||
|
||||
|
@ -27,8 +28,8 @@ class Job extends \Test\TestCase {
|
|||
->disableOriginalConstructor()
|
||||
->getMock();
|
||||
$logger->expects($this->once())
|
||||
->method('error')
|
||||
->with('Error while running background job: ');
|
||||
->method('logException')
|
||||
->with($e);
|
||||
|
||||
$this->assertCount(1, $jobList->getAll());
|
||||
$job->execute($jobList, $logger);
|
||||
|
|
Loading…
Reference in New Issue