Some expected Sabre exceptions are now logged with DEBUG level
This commit is contained in:
parent
341fcdc37a
commit
4a493c8835
2 changed files with 20 additions and 6 deletions
|
@ -11,6 +11,17 @@
|
|||
|
||||
class OC_Connector_Sabre_ExceptionLoggerPlugin extends Sabre_DAV_ServerPlugin
|
||||
{
|
||||
private $nonFatalExceptions = array(
|
||||
'Sabre_DAV_Exception_NotAuthenticated' => true,
|
||||
// the sync client uses this to find out whether files exist,
|
||||
// so it is not always an error, log it as debug
|
||||
'Sabre_DAV_Exception_NotFound' => true,
|
||||
// this one mostly happens when the same file is uploaded at
|
||||
// exactly the same time from two clients, only one client
|
||||
// wins, the second one gets "Precondition failed"
|
||||
'Sabre_DAV_Exception_PreconditionFailed' => true,
|
||||
);
|
||||
|
||||
private $appName;
|
||||
|
||||
/**
|
||||
|
@ -43,8 +54,10 @@ class OC_Connector_Sabre_ExceptionLoggerPlugin extends Sabre_DAV_ServerPlugin
|
|||
*/
|
||||
public function logException($e) {
|
||||
$exceptionClass = get_class($e);
|
||||
if ($exceptionClass !== 'Sabre_DAV_Exception_NotAuthenticated') {
|
||||
\OCP\Util::logException($this->appName, $e);
|
||||
$level = \OCP\Util::FATAL;
|
||||
if (isset($this->nonFatalExceptions[$exceptionClass])) {
|
||||
$level = \OCP\Util::DEBUG;
|
||||
}
|
||||
\OCP\Util::logException($this->appName, $e, $level);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -86,21 +86,22 @@ class Util {
|
|||
* if DEBUG mode is enabled
|
||||
* @param string $app app name
|
||||
* @param \Exception $ex exception to log
|
||||
* @param string $level log level, defaults to \OCP\Util::FATAL
|
||||
*/
|
||||
public static function logException( $app, \Exception $ex ) {
|
||||
public static function logException( $app, \Exception $ex, $level = \OCP\Util::FATAL ) {
|
||||
$class = get_class($ex);
|
||||
$message = $class . ': ' . $ex->getMessage();
|
||||
if ($ex->getCode()) {
|
||||
$message .= ' [' . $ex->getCode() . ']';
|
||||
}
|
||||
\OCP\Util::writeLog($app, $message, \OCP\Util::FATAL);
|
||||
\OCP\Util::writeLog($app, $message, $level);
|
||||
if (defined('DEBUG') and DEBUG) {
|
||||
// also log stack trace
|
||||
$stack = explode("\n", $ex->getTraceAsString());
|
||||
// first element is empty
|
||||
array_shift($stack);
|
||||
foreach ($stack as $s) {
|
||||
\OCP\Util::writeLog($app, 'Exception: ' . $s, \OCP\Util::FATAL);
|
||||
\OCP\Util::writeLog($app, 'Exception: ' . $s, $level);
|
||||
}
|
||||
|
||||
// include cause
|
||||
|
@ -110,7 +111,7 @@ class Util {
|
|||
if ($ex->getCode()) {
|
||||
$message .= '[' . $ex->getCode() . '] ';
|
||||
}
|
||||
\OCP\Util::writeLog($app, 'Exception: ' . $message, \OCP\Util::FATAL);
|
||||
\OCP\Util::writeLog($app, 'Exception: ' . $message, $level);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue