1
0
Fork 0
mirror of synced 2024-06-18 18:54:55 +12:00

FIxed realtime logging, upgraded code to new logger version

This commit is contained in:
Matej Baco 2021-11-25 15:13:14 +01:00
parent 276f521eb6
commit a8bf2a4f59
5 changed files with 100 additions and 102 deletions

4
.env
View file

@ -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
_APP_LOGGING_PROVIDER=
_APP_LOGGING_CONFIG=

View file

@ -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());

View file

@ -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());

13
composer.lock generated
View file

@ -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",

View file

@ -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;
}