Skip to content

Commit 4de447d

Browse files
authored
Merge pull request #33 from open-runtimes/fix-logger-backwards-compatibility
Fix: Backwards compatible logger
2 parents 1c281f3 + cc683dd commit 4de447d

File tree

3 files changed

+149
-75
lines changed

3 files changed

+149
-75
lines changed

app/http.php

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use Utopia\Balancer\Group;
2323
use Utopia\Balancer\Option;
2424
use Utopia\CLI\Console;
25+
use Utopia\DSN\DSN;
2526
use Utopia\Fetch\Client;
2627
use Utopia\Http\Adapter\Swoole\Server;
2728
use Utopia\Http\Http;
@@ -57,17 +58,40 @@
5758
return $state;
5859
});
5960

61+
/**
62+
* Create logger for cloud logging
63+
*/
6064
$register->set('logger', function () {
6165
$providerName = Http::getEnv('OPR_PROXY_LOGGING_PROVIDER', '');
6266
$providerConfig = Http::getEnv('OPR_PROXY_LOGGING_CONFIG', '');
67+
68+
try {
69+
$loggingProvider = new DSN($providerConfig ?? '');
70+
71+
$providerName = $loggingProvider->getScheme();
72+
$providerConfig = match ($providerName) {
73+
'sentry' => ['key' => $loggingProvider->getPassword(), 'projectId' => $loggingProvider->getUser() ?? '', 'host' => 'https://' . $loggingProvider->getHost()],
74+
'logowl' => ['ticket' => $loggingProvider->getUser() ?? '', 'host' => $loggingProvider->getHost()],
75+
default => ['key' => $loggingProvider->getHost()],
76+
};
77+
} catch (Throwable) {
78+
$configChunks = \explode(";", ($providerConfig ?? ''));
79+
80+
$providerConfig = match ($providerName) {
81+
'sentry' => ['key' => $configChunks[0], 'projectId' => $configChunks[1] ?? '', 'host' => '',],
82+
'logowl' => ['ticket' => $configChunks[0] ?? '', 'host' => ''],
83+
default => ['key' => $providerConfig],
84+
};
85+
}
86+
6387
$logger = null;
6488

65-
if (!empty($providerName) && !empty($providerConfig) && Logger::hasProvider($providerName)) {
89+
if (!empty($providerName) && is_array($providerConfig) && Logger::hasProvider($providerName)) {
6690
$adapter = match ($providerName) {
67-
'sentry' => new Sentry($providerConfig),
68-
'raygun' => new Raygun($providerConfig),
69-
'logowl' => new LogOwl($providerConfig),
70-
'appsignal' => new AppSignal($providerConfig),
91+
'sentry' => new Sentry($providerConfig['projectId'] ?? '', $providerConfig['key'] ?? '', $providerConfig['host'] ?? ''),
92+
'logowl' => new LogOwl($providerConfig['ticket'] ?? '', $providerConfig['host'] ?? ''),
93+
'raygun' => new Raygun($providerConfig['key'] ?? ''),
94+
'appsignal' => new AppSignal($providerConfig['key'] ?? ''),
7195
default => throw new Exception('Provider "' . $providerName . '" not supported.')
7296
};
7397

composer.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@
2727
"utopia-php/framework": "0.34.*",
2828
"utopia-php/registry": "0.6.*",
2929
"utopia-php/cli": "0.13.*",
30-
"utopia-php/logger": "0.5.*",
30+
"utopia-php/logger": "0.6.*",
3131
"utopia-php/balancer": "0.4.*",
32-
"utopia-php/fetch": "^0.1.0"
32+
"utopia-php/fetch": "^0.1.0",
33+
"utopia-php/dsn": "0.1.*"
3334
},
3435
"require-dev": {
3536
"swoole/ide-helper": "4.8.5",

0 commit comments

Comments
 (0)