diff --git a/.env b/.env index eff9201d2..972024c34 100644 --- a/.env +++ b/.env @@ -43,5 +43,5 @@ _APP_MAINTENANCE_RETENTION_EXECUTION=1209600 _APP_MAINTENANCE_RETENTION_ABUSE=86400 _APP_MAINTENANCE_RETENTION_AUDIT=1209600 _APP_USAGE_STATS=enabled -_APP_LOGGING_PROVIDER=sentry -_APP_LOGGING_CONFIG=9a4ebfef5ab14c8483366039b9de2835;6076895 \ No newline at end of file +_APP_LOGGING_PROVIDER= +_APP_LOGGING_CONFIG= \ No newline at end of file diff --git a/app/controllers/general.php b/app/controllers/general.php index 717ae5c16..d88c987db 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -304,7 +304,7 @@ 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) { + if($error->getCode() >= 500 || $error->getCode() === 0 && !$logger) { $log = new Utopia\Logger\Log(); if(!$user->isEmpty()) { @@ -317,15 +317,13 @@ App::error(function ($error, $utopia, $request, $response, $layout, $project, $l $log->setType(Log::TYPE_ERROR); $log->setMessage($error->getMessage()); - $log->setTags([ - 'method' => $route->getMethod(), - 'url' => $route->getPath(), - 'code' => $error->getCode(), - 'verbose_type' => get_class($error), - 'projectId' => $project->getId(), - 'hostname' => $request->getHostname(), - 'locale' => (string)$request->getParam('locale', $request->getHeader('x-appwrite-locale', '')), - ]); + $log->addTag('method', $route->getMethod()); + $log->addTag('url', $error->getCode()); + $log->addTag('code', get_class($error)); + $log->addTag('verbose_type', $route->getPath()); + $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()); diff --git a/app/realtime.php b/app/realtime.php index 828a6b59b..2110b5593 100644 --- a/app/realtime.php +++ b/app/realtime.php @@ -49,9 +49,13 @@ $adapter->setPackageMaxLength(64000); // Default maximum Package Size (64kb) $server = new Server($adapter); -function logError(Throwable $error, string $action) use ($register) { +$logError = function(Throwable $error, string $action) use ($register) { $logger = $register->get('logger'); + if(!$logger) { + return; + } + $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); $log = new Log(); @@ -61,10 +65,8 @@ function logError(Throwable $error, string $action) use ($register) { $log->setType(Log::TYPE_ERROR); $log->setMessage($error->getMessage()); - $log->setTags([ - 'code' => $error->getCode(), - 'verbose_type' => get_class($error), - ]); + $log->addTag('code', $error->getCode()); + $log->addTag('verbose_type', get_class($error)); $log->addExtra('file', $error->getFile()); $log->addExtra('line', $error->getLine()); @@ -75,15 +77,13 @@ function logError(Throwable $error, string $action) use ($register) { $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); - $log->setBreadcrumbs([]); - $responseCode = $logger->addLog($log); Console::info('Realtime log pushed with status code: '.$responseCode); -} +}; -$server->onError(logError()); +$server->onError($logError); -$server->onStart(function () use ($stats, $register, $containerId, &$documentId) { +$server->onStart(function () use ($stats, $register, $containerId, &$documentId, $logError) { Console::success('Server started succefully'); $getConsoleDb = function () use ($register) { @@ -107,7 +107,7 @@ $server->onStart(function () use ($stats, $register, $containerId, &$documentId) /** * Create document for this worker to share stats across Containers. */ - go(function () use ($getConsoleDb, $containerId, &$documentId, $register) { + go(function () use ($getConsoleDb, $containerId, &$documentId, $register, $logError) { try { [$consoleDb, $returnConsoleDb] = call_user_func($getConsoleDb); $document = [ @@ -125,7 +125,8 @@ $server->onStart(function () use ($stats, $register, $containerId, &$documentId) Authorization::enable(); $documentId = $document->getId(); } catch (\Throwable $th) { - logError($register, $th, "onStart.createDocument"); + var_dump("Error starting"); + call_user_func($logError, $th, "onStart.createDocument"); Console::error('[Error] Type: ' . get_class($th)); Console::error('[Error] Message: ' . $th->getMessage()); diff --git a/composer.lock b/composer.lock index a61ba2bca..fe0012021 100644 --- a/composer.lock +++ b/composer.lock @@ -5205,7 +5205,6 @@ "type": "github" } ], - "abandoned": true, "time": "2020-09-28T06:45:17+00:00" }, { @@ -6141,16 +6140,16 @@ }, { "name": "twig/twig", - "version": "v2.14.7", + "version": "v2.14.8", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "8e202327ee1ed863629de9b18a5ec70ac614d88f" + "reference": "06b450a2326aa879faa2061ff72fe1588b3ab043" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/8e202327ee1ed863629de9b18a5ec70ac614d88f", - "reference": "8e202327ee1ed863629de9b18a5ec70ac614d88f", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/06b450a2326aa879faa2061ff72fe1588b3ab043", + "reference": "06b450a2326aa879faa2061ff72fe1588b3ab043", "shasum": "" }, "require": { @@ -6204,7 +6203,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v2.14.7" + "source": "https://github.com/twigphp/Twig/tree/v2.14.8" }, "funding": [ { @@ -6216,7 +6215,7 @@ "type": "tidelift" } ], - "time": "2021-09-17T08:39:54+00:00" + "time": "2021-11-25T13:38:06+00:00" }, { "name": "vimeo/psalm", diff --git a/src/Appwrite/Resque/Worker.php b/src/Appwrite/Resque/Worker.php index 8e99b3708..094573a11 100644 --- a/src/Appwrite/Resque/Worker.php +++ b/src/Appwrite/Resque/Worker.php @@ -63,38 +63,36 @@ abstract class Worker global $register; $logger = $register->get('logger'); - $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); - $workerType = $this->getName(); + if($logger) { + $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); + $workerType = $this->getName(); - $log = new Log(); + $log = new Log(); - $log->setNamespace("worker-" . $workerType); - $log->setServer(\gethostname()); - $log->setVersion($version); - $log->setType(Log::TYPE_ERROR); - $log->setMessage($error->getMessage()); + $log->setNamespace("worker-" . $workerType); + $log->setServer(\gethostname()); + $log->setVersion($version); + $log->setType(Log::TYPE_ERROR); + $log->setMessage($error->getMessage()); - $log->setTags([ - 'worker_type' => $workerType, - 'code' => $error->getCode(), - 'verbose_type' => \get_class($error), - ]); + $log->addTag('worker_type', $workerType); + $log->addTag('code', $error->getCode()); + $log->addTag('verbose_type', \get_class($error)); - $log->addExtra('file', $error->getFile()); - $log->addExtra('line', $error->getLine()); - $log->addExtra('trace', $error->getTraceAsString()); - $log->addExtra('args', $this->args); + $log->addExtra('file', $error->getFile()); + $log->addExtra('line', $error->getLine()); + $log->addExtra('trace', $error->getTraceAsString()); + $log->addExtra('args', $this->args); - $action = 'worker.' . $workerType . '.setUp'; - $log->setAction($action); + $action = 'worker.' . $workerType . '.setUp'; + $log->setAction($action); - $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; - $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); + $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; + $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); - $log->setBreadcrumbs([]); - - $responseCode = $logger->addLog($log); - Console::info('Setup log pushed with status code: '.$responseCode); + $responseCode = $logger->addLog($log); + Console::info('Setup log pushed with status code: '.$responseCode); + } throw $error; } @@ -113,37 +111,38 @@ abstract class Worker } catch(\Throwable $error) { global $register; $logger = $register->get('logger'); - $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); - $workerType = $this->getName(); - $log = new Log(); + if($logger) { + $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); + $workerType = $this->getName(); - $log->setNamespace("worker-" . $workerType); - $log->setServer(\gethostname()); - $log->setVersion($version); - $log->setType(Log::TYPE_ERROR); - $log->setMessage($error->getMessage()); + $log = new Log(); - $log->setTags([ - 'worker_type' => $workerType, - 'code' => $error->getCode(), - 'verbose_type' => \get_class($error), - ]); + $log->setNamespace("worker-" . $workerType); + $log->setServer(\gethostname()); + $log->setVersion($version); + $log->setType(Log::TYPE_ERROR); + $log->setMessage($error->getMessage()); - $log->addExtra('file', $error->getFile()); - $log->addExtra('line', $error->getLine()); - $log->addExtra('trace', $error->getTraceAsString()); + $log->setTags([ + 'worker_type' => $workerType, + 'code' => $error->getCode(), + 'verbose_type' => \get_class($error), + ]); - $action = 'worker.' . $workerType . '.perform'; - $log->setAction($action); + $log->addExtra('file', $error->getFile()); + $log->addExtra('line', $error->getLine()); + $log->addExtra('trace', $error->getTraceAsString()); - $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; - $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); + $action = 'worker.' . $workerType . '.perform'; + $log->setAction($action); - $log->setBreadcrumbs([]); + $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; + $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); - $responseCode = $logger->addLog($log); - Console::info('Perform log pushed with status code: '.$responseCode); + $responseCode = $logger->addLog($log); + Console::info('Perform log pushed with status code: '.$responseCode); + } throw $error; } @@ -162,37 +161,38 @@ abstract class Worker } catch(\Throwable $error) { global $register; $logger = $register->get('logger'); - $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); - $workerType = $this->getName(); - $log = new Log(); + if($logger) { + $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); + $workerType = $this->getName(); - $log->setNamespace("worker-" . $workerType); - $log->setServer(\gethostname()); - $log->setVersion($version); - $log->setType(Log::TYPE_ERROR); - $log->setMessage($error->getMessage()); + $log = new Log(); - $log->setTags([ - 'worker_type' => $workerType, - 'code' => $error->getCode(), - 'verbose_type' => \get_class($error), - ]); + $log->setNamespace("worker-" . $workerType); + $log->setServer(\gethostname()); + $log->setVersion($version); + $log->setType(Log::TYPE_ERROR); + $log->setMessage($error->getMessage()); - $log->addExtra('file', $error->getFile()); - $log->addExtra('line', $error->getLine()); - $log->addExtra('trace', $error->getTraceAsString()); + $log->setTags([ + 'worker_type' => $workerType, + 'code' => $error->getCode(), + 'verbose_type' => \get_class($error), + ]); - $action = 'worker.' . $workerType . '.tearDown'; - $log->setAction($action); + $log->addExtra('file', $error->getFile()); + $log->addExtra('line', $error->getLine()); + $log->addExtra('trace', $error->getTraceAsString()); - $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; - $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); + $action = 'worker.' . $workerType . '.tearDown'; + $log->setAction($action); - $log->setBreadcrumbs([]); + $isProduction = App::getEnv('_APP_ENV', 'development') === 'production'; + $log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING); - $responseCode = $logger->addLog($log); - Console::info('Teardown log pushed with status code: '.$responseCode); + $responseCode = $logger->addLog($log); + Console::info('Teardown log pushed with status code: '.$responseCode); + } throw $error; }