Browse Source

catch exceptions that occur during logging

Signed-off-by: Robin Appelman <robin@icewind.nl>
tags/v18.0.0beta1
Robin Appelman 4 years ago
parent
commit
2943c18548
No account linked to committer's email address
1 changed files with 31 additions and 24 deletions
  1. 31
    24
      lib/private/Log.php

+ 31
- 24
lib/private/Log.php View File

@@ -214,24 +214,27 @@ class Log implements ILogger {
}
$message = strtr($message, $replace);

if ($level >= $minLevel) {
$this->writeLog($app, $message, $level);

if ($this->crashReporters !== null) {
$messageContext = array_merge(
$context,
[
'level' => $level
]
);
$this->crashReporters->delegateMessage($message, $messageContext);
}
} else {
if ($this->crashReporters !== null) {
$this->crashReporters->delegateBreadcrumb($message, 'log', $context);
try {
if ($level >= $minLevel) {
$this->writeLog($app, $message, $level);

if ($this->crashReporters !== null) {
$messageContext = array_merge(
$context,
[
'level' => $level
]
);
$this->crashReporters->delegateMessage($message, $messageContext);
}
} else {
if ($this->crashReporters !== null) {
$this->crashReporters->delegateBreadcrumb($message, 'log', $context);
}
}
} catch (\Throwable $e) {
// make sure we dont hard crash if logging fails
}

}

private function getLogLevel($context) {
@@ -318,16 +321,20 @@ class Log implements ILogger {

array_walk($context, [$this->normalizer, 'format']);

if ($level >= $minLevel) {
if (!$this->logger instanceof IFileBased) {
$data = json_encode($data, JSON_PARTIAL_OUTPUT_ON_ERROR);
try {
if ($level >= $minLevel) {
if (!$this->logger instanceof IFileBased) {
$data = json_encode($data, JSON_PARTIAL_OUTPUT_ON_ERROR);
}
$this->writeLog($app, $data, $level);
}
$this->writeLog($app, $data, $level);
}

$context['level'] = $level;
if (!is_null($this->crashReporters)) {
$this->crashReporters->delegateReport($exception, $context);
$context['level'] = $level;
if (!is_null($this->crashReporters)) {
$this->crashReporters->delegateReport($exception, $context);
}
} catch (\Throwable $e) {
// make sure we dont hard crash if logging fails
}
}


Loading…
Cancel
Save