catch exceptions that occur during logging
Signed-off-by: Robin Appelman <robin@icewind.nl>
This commit is contained in:
parent
ce10683944
commit
2943c18548
|
@ -214,24 +214,27 @@ class Log implements ILogger {
|
||||||
}
|
}
|
||||||
$message = strtr($message, $replace);
|
$message = strtr($message, $replace);
|
||||||
|
|
||||||
if ($level >= $minLevel) {
|
try {
|
||||||
$this->writeLog($app, $message, $level);
|
if ($level >= $minLevel) {
|
||||||
|
$this->writeLog($app, $message, $level);
|
||||||
|
|
||||||
if ($this->crashReporters !== null) {
|
if ($this->crashReporters !== null) {
|
||||||
$messageContext = array_merge(
|
$messageContext = array_merge(
|
||||||
$context,
|
$context,
|
||||||
[
|
[
|
||||||
'level' => $level
|
'level' => $level
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$this->crashReporters->delegateMessage($message, $messageContext);
|
$this->crashReporters->delegateMessage($message, $messageContext);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ($this->crashReporters !== null) {
|
if ($this->crashReporters !== null) {
|
||||||
$this->crashReporters->delegateBreadcrumb($message, 'log', $context);
|
$this->crashReporters->delegateBreadcrumb($message, 'log', $context);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
// make sure we dont hard crash if logging fails
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getLogLevel($context) {
|
private function getLogLevel($context) {
|
||||||
|
@ -318,16 +321,20 @@ class Log implements ILogger {
|
||||||
|
|
||||||
array_walk($context, [$this->normalizer, 'format']);
|
array_walk($context, [$this->normalizer, 'format']);
|
||||||
|
|
||||||
if ($level >= $minLevel) {
|
try {
|
||||||
if (!$this->logger instanceof IFileBased) {
|
if ($level >= $minLevel) {
|
||||||
$data = json_encode($data, JSON_PARTIAL_OUTPUT_ON_ERROR);
|
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;
|
$context['level'] = $level;
|
||||||
if (!is_null($this->crashReporters)) {
|
if (!is_null($this->crashReporters)) {
|
||||||
$this->crashReporters->delegateReport($exception, $context);
|
$this->crashReporters->delegateReport($exception, $context);
|
||||||
|
}
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
// make sure we dont hard crash if logging fails
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue