Remove utopia logger dependency

This commit is contained in:
Chirag Aggarwal
2026-04-30 10:18:54 +05:30
parent 8ffe48d948
commit eeea533a26
34 changed files with 351 additions and 621 deletions
+33 -39
View File
@@ -28,13 +28,13 @@ use Utopia\Database\Document;
use Utopia\Database\Validator\Authorization;
use Utopia\DI\Container;
use Utopia\DSN\DSN;
use Utopia\Logger\Log;
use Utopia\Platform\Service;
use Utopia\Pools\Group;
use Utopia\Queue\Broker\Pool as BrokerPool;
use Utopia\Queue\Publisher;
use Utopia\Queue\Queue;
use Utopia\Registry\Registry;
use Utopia\Span\Span;
use Utopia\System\System;
use Utopia\Telemetry\Adapter\None as NoTelemetry;
@@ -267,8 +267,8 @@ $container->set('queueForFunctions', function (Publisher $publisher) {
$container->set('queueForDeletes', function (Publisher $publisher) {
return new Delete($publisher);
}, ['publisher']);
$container->set('logError', function (Registry $register) {
return function (Throwable $error, string $namespace, string $action) use ($register) {
$container->set('logError', function () {
return function (Throwable $error, string $namespace, string $action) {
Console::error('[Error] Timestamp: ' . date('c', time()));
Console::error('[Error] Type: ' . get_class($error));
Console::error('[Error] Message: ' . $error->getMessage());
@@ -276,48 +276,42 @@ $container->set('logError', function (Registry $register) {
Console::error('[Error] Line: ' . $error->getLine());
Console::error('[Error] Trace: ' . $error->getTraceAsString());
$logger = $register->get('logger');
$span = Span::current();
$shouldFinish = false;
if ($span === null) {
$span = Span::init($action);
$shouldFinish = true;
}
if ($logger) {
$version = System::getEnv('_APP_VERSION', 'UNKNOWN');
Span::add('level', 'error');
Span::add('logger', $namespace);
Span::add('server.name', System::getEnv('_APP_LOGGING_SERVICE_IDENTIFIER', \gethostname()));
Span::add('release', System::getEnv('_APP_VERSION', 'UNKNOWN'));
Span::add('environment', System::getEnv('_APP_ENV', 'development') === 'production' ? 'production' : 'staging');
Span::add('appwrite.error.publish', true);
Span::add('appwrite.error.action', $action);
Span::add('error.message', $error->getMessage());
Span::add('error.type', get_class($error));
Span::add('error.code', $error->getCode());
Span::add('error.file', $error->getFile());
Span::add('error.line', $error->getLine());
Span::add('error.trace', $error->getTraceAsString());
Span::add('error.detailedTrace', \json_encode($error->getTrace()) ?: null);
$log = new Log();
$log->setNamespace($namespace);
$log->setServer(System::getEnv('_APP_LOGGING_SERVICE_IDENTIFIER', \gethostname()));
$log->setVersion($version);
$log->setType(Log::TYPE_ERROR);
$log->setMessage($error->getMessage());
$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());
$log->addExtra('detailedTrace', $error->getTrace());
if ($error->getPrevious() !== null) {
if ($error->getPrevious()->getMessage() != $error->getMessage()) {
$log->addExtra('previousMessage', $error->getPrevious()->getMessage());
}
$log->addExtra('previousFile', $error->getPrevious()->getFile());
$log->addExtra('previousLine', $error->getPrevious()->getLine());
if ($error->getPrevious() !== null) {
if ($error->getPrevious()->getMessage() != $error->getMessage()) {
Span::add('error.previous.message', $error->getPrevious()->getMessage());
}
Span::add('error.previous.file', $error->getPrevious()->getFile());
Span::add('error.previous.line', $error->getPrevious()->getLine());
}
$log->setAction($action);
$isProduction = System::getEnv('_APP_ENV', 'development') === 'production';
$log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING);
try {
$responseCode = $logger->addLog($log);
Console::info('Error log pushed with status code: ' . $responseCode);
} catch (Throwable $th) {
Console::error('Error pushing log: ' . $th->getMessage());
}
Span::error($error);
if ($shouldFinish) {
$span->finish();
}
};
}, ['register']);
}, []);
$container->set('executor', fn () => new Executor(), []);