diff --git a/app/controllers/general.php b/app/controllers/general.php index e945189b24..86ad0a8d8e 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -793,6 +793,23 @@ App::error() $publish = $error->getCode() === 0 || $error->getCode() >= 500; } + if ($error->getCode() >= 400 && $error->getCode() < 500) { + // Register error logger + $providerName = App::getEnv('_APP_EXPERIMENT_LOGGING_PROVIDER', ''); + $providerConfig = App::getEnv('_APP_EXPERIMENT_LOGGING_CONFIG', ''); + + if (!(empty($providerName) || empty($providerConfig))) { + if (!Logger::hasProvider($providerName)) { + throw new Exception("Logging provider not supported. Logging is disabled"); + } + + $classname = '\\Utopia\\Logger\\Adapter\\' . \ucfirst($providerName); + $adapter = new $classname($providerConfig); + $logger = new Logger($adapter); + $publish = true; + } + } + if ($logger && ($publish || $error->getCode() === 0)) { try { /** @var Utopia\Database\Document $user */ diff --git a/docker-compose.yml b/docker-compose.yml index 3d4c5d57be..26c5301526 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -185,6 +185,8 @@ services: - _APP_MIGRATIONS_FIREBASE_CLIENT_ID - _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET - _APP_ASSISTANT_OPENAI_API_KEY + - _APP_EXPERIMENT_LOGGING_PROVIDER + - _APP_EXPERIMENT_LOGGING_CONFIG appwrite-realtime: entrypoint: realtime