From f6c4b10189c6d76d94b0b01a440a326e6346c301 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thomas=20M=C3=BCller?= Date: Fri, 15 Jan 2016 13:13:27 +0100 Subject: [PATCH] Add message key to context of logException --- lib/private/backgroundjob/job.php | 6 ++++-- lib/private/log.php | 4 +++- lib/public/ilogger.php | 8 ++++++++ tests/lib/backgroundjob/job.php | 3 --- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/private/backgroundjob/job.php b/lib/private/backgroundjob/job.php index d666cfe085e..e7268894848 100644 --- a/lib/private/backgroundjob/job.php +++ b/lib/private/backgroundjob/job.php @@ -52,8 +52,10 @@ abstract class Job implements IJob { $this->run($this->argument); } catch (\Exception $e) { if ($logger) { - $logger->error('Error while running background job (class: ' . get_class($this) . ', arguments: ' . print_r($this->argument, true) . ')'); - $logger->logException($e); + $logger->logException($e, [ + 'app' => 'core', + 'message' => 'Error while running background job (class: ' . get_class($this) . ', arguments: ' . print_r($this->argument, true) . ')' + ]); } } } diff --git a/lib/private/log.php b/lib/private/log.php index 6c1666a9d7f..addefe6e53d 100644 --- a/lib/private/log.php +++ b/lib/private/log.php @@ -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); } } diff --git a/lib/public/ilogger.php b/lib/public/ilogger.php index 368b25ab693..2a727697a6a 100644 --- a/lib/public/ilogger.php +++ b/lib/public/ilogger.php @@ -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. + * + * + * $logger->logException($ex, [ + * 'message' => 'Exception during cron job execution' + * ]); + * * * @param \Exception $exception * @param array $context diff --git a/tests/lib/backgroundjob/job.php b/tests/lib/backgroundjob/job.php index 75b4865819a..12413e2c52a 100644 --- a/tests/lib/backgroundjob/job.php +++ b/tests/lib/backgroundjob/job.php @@ -27,9 +27,6 @@ class Job extends \Test\TestCase { $logger = $this->getMockBuilder('OCP\ILogger') ->disableOriginalConstructor() ->getMock(); - $logger->expects($this->once()) - ->method('error') - ->with('Error while running background job (class: Test\BackgroundJob\TestJob, arguments: )'); $logger->expects($this->once()) ->method('logException') ->with($e); -- 2.39.5