From 243dfbb9ca9ef9ef948543ffec93fc2e19af5661 Mon Sep 17 00:00:00 2001 From: Matej Baco Date: Mon, 6 Dec 2021 14:14:55 +0100 Subject: [PATCH] PR review bug fix --- app/controllers/general.php | 75 +++++++++++++++++++------------------ app/init.php | 2 +- app/workers.php | 64 ++++++++++++++++--------------- 3 files changed, 72 insertions(+), 69 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 58331c3aff..a0324ec040 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -305,47 +305,48 @@ App::error(function ($error, $utopia, $request, $response, $layout, $project, $l $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); $route = $utopia->match($request); - if($error->getCode() >= 500 || $error->getCode() === 0 && !$logger) { - $log = new Utopia\Logger\Log(); + if($logger) { + if($error->getCode() >= 500 || $error->getCode() === 0) { + $log = new Utopia\Logger\Log(); - if(!$user->isEmpty()) { - $log->setUser(new User($user->getId())); + if(!$user->isEmpty()) { + $log->setUser(new User($user->getId())); + } + + $log->setNamespace("http"); + $log->setServer(\gethostname()); + $log->setVersion($version); + $log->setType(Log::TYPE_ERROR); + $log->setMessage($error->getMessage()); + + $log->addTag('method', $route->getMethod()); + $log->addTag('url', $route->getPath()); + $log->addTag('verboseType', get_class($error)); + $log->addTag('code', $error->getCode()); + $log->addTag('projectId', $project->getId()); + $log->addTag('hostname', $request->getHostname()); + $log->addTag('locale', (string)$request->getParam('locale', $request->getHeader('x-appwrite-locale', ''))); + + $log->addExtra('file', $error->getFile()); + $log->addExtra('line', $error->getLine()); + $log->addExtra('trace', $error->getTraceAsString()); + $log->addExtra('roles', Authorization::$roles); + + $action = $route->getLabel("sdk.namespace", "UNKNOWN_NAMESPACE") . '.' . $route->getLabel("sdk.method", "UNKNOWN_METHOD"); + $log->setAction($action); + + $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; + $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); + + foreach($loggerBreadcrumbs as $loggerBreadcrumb) { + $log->addBreadcrumb($loggerBreadcrumb); + } + + $responseCode = $logger->addLog($log); + Console::info('Log pushed with status code: '.$responseCode); } - - $log->setNamespace("http"); - $log->setServer(\gethostname()); - $log->setVersion($version); - $log->setType(Log::TYPE_ERROR); - $log->setMessage($error->getMessage()); - - $log->addTag('method', $route->getMethod()); - $log->addTag('url', $route->getPath()); - $log->addTag('verboseType', get_class($error)); - $log->addTag('code', $error->getCode()); - $log->addTag('projectId', $project->getId()); - $log->addTag('hostname', $request->getHostname()); - $log->addTag('locale', (string)$request->getParam('locale', $request->getHeader('x-appwrite-locale', ''))); - - $log->addExtra('file', $error->getFile()); - $log->addExtra('line', $error->getLine()); - $log->addExtra('trace', $error->getTraceAsString()); - $log->addExtra('roles', Authorization::$roles); - - $action = $route->getLabel("sdk.namespace", "UNKNOWN_NAMESPACE") . '.' . $route->getLabel("sdk.method", "UNKNOWN_METHOD"); - $log->setAction($action); - - $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; - $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); - - foreach($loggerBreadcrumbs as $loggerBreadcrumb) { - $log->addBreadcrumb($loggerBreadcrumb); - } - - $responseCode = $logger->addLog($log); - Console::info('Log pushed with status code: '.$responseCode); } - if ($error instanceof PDOException) { throw $error; } diff --git a/app/init.php b/app/init.php index 0f3abe5fac..c2f43f3252 100644 --- a/app/init.php +++ b/app/init.php @@ -169,7 +169,7 @@ $register->set('logger', function () { // Register error logger $providerConfig = App::getEnv('_APP_LOGGING_CONFIG', ''); if(empty($providerName) || empty($providerConfig)) { - return; + return null; } if(!Logger::hasProvider($providerName)) { diff --git a/app/workers.php b/app/workers.php index 9822834f85..4cb3af5f55 100644 --- a/app/workers.php +++ b/app/workers.php @@ -42,36 +42,38 @@ Worker::error(function ($error, $action, $workerType, $optionalExtras) use ($reg $logger = $register->get('logger'); - if($logger) { - $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); - - $log = new Log(); - - $log->setNamespace("worker-" . $workerType); - $log->setServer(\gethostname()); - $log->setVersion($version); - $log->setType(Log::TYPE_ERROR); - $log->setMessage($error->getMessage()); - - $log->addTag('workerType', $workerType); - $log->addTag('code', $error->getCode()); - $log->addTag('verboseType', \get_class($error)); - - $log->addExtra('file', $error->getFile()); - $log->addExtra('line', $error->getLine()); - $log->addExtra('trace', $error->getTraceAsString()); - - if($optionalExtras) { - $log->addExtra('args', $optionalExtras); - } - - $action = 'worker.' . $workerType . '.' . $action; - $log->setAction($action); - - $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; - $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); - - $responseCode = $logger->addLog($log); - Console::info('Setup log pushed with status code: ' . $responseCode); + if(!$logger) { + return; } + + $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); + + $log = new Log(); + + $log->setNamespace("worker-" . $workerType); + $log->setServer(\gethostname()); + $log->setVersion($version); + $log->setType(Log::TYPE_ERROR); + $log->setMessage($error->getMessage()); + + $log->addTag('workerType', $workerType); + $log->addTag('code', $error->getCode()); + $log->addTag('verboseType', \get_class($error)); + + $log->addExtra('file', $error->getFile()); + $log->addExtra('line', $error->getLine()); + $log->addExtra('trace', $error->getTraceAsString()); + + if($optionalExtras) { + $log->addExtra('args', $optionalExtras); + } + + $action = 'worker.' . $workerType . '.' . $action; + $log->setAction($action); + + $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; + $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); + + $responseCode = $logger->addLog($log); + Console::info('Setup log pushed with status code: ' . $responseCode); }); \ No newline at end of file