diff --git a/src/App.php b/src/App.php index aa6dc51234..17254bb966 100644 --- a/src/App.php +++ b/src/App.php @@ -138,7 +138,9 @@ class App $this->setupContainerForAddons(); - $this->container->setup(LogChannel::APP); + $this->setupContainerForLogger(LogChannel::APP); + + $this->container->setup(); $this->registerErrorHandler(); @@ -178,6 +180,10 @@ class App { $this->setupContainerForAddons(); + $this->setupContainerForLogger($this->determineLogChannel($argv)); + + $this->container->setup(); + $this->registerErrorHandler(); $this->registerTemplateEngine(); @@ -189,7 +195,9 @@ class App { $this->setupContainerForAddons(); - $this->container->setup(LogChannel::AUTH_JABBERED); + $this->setupContainerForLogger(LogChannel::AUTH_JABBERED); + + $this->container->setup(); $this->registerErrorHandler(); @@ -218,6 +226,30 @@ class App } } + private function determineLogChannel(array $argv): string + { + $command = strtolower($argv[1]) ?? ''; + + if ($command === 'daemon' || $command === 'jetstream') { + return LogChannel::DAEMON; + } + + if ($command === 'worker') { + return LogChannel::WORKER; + } + + // @TODO Add support for jetstream + + return LogChannel::CONSOLE; + } + + private function setupContainerForLogger(string $logChannel): void + { + $this->container->addRule(LoggerInterface::class, [ + 'constructParams' => [$logChannel], + ]); + } + private function registerErrorHandler(): void { ErrorHandler::register($this->container->create(LoggerInterface::class)); diff --git a/src/Core/Console.php b/src/Core/Console.php index d138a9dfa9..67844f6033 100644 --- a/src/Core/Console.php +++ b/src/Core/Console.php @@ -187,12 +187,6 @@ HELP; $className = $this->subConsoles[$command]; - if (is_subclass_of($className, Friendica\Console\AbstractConsole::class)) { - $this->container->setup($className::LOG_CHANNEL); - } else { - $this->container->setup(LogChannel::CONSOLE); - } - /** @var Console $subconsole */ $subconsole = $this->container->create($className, [$subargs]); diff --git a/src/Core/Container.php b/src/Core/Container.php index 84f8564a87..8d69799122 100644 --- a/src/Core/Container.php +++ b/src/Core/Container.php @@ -19,11 +19,9 @@ interface Container * * @deprecated * - * @param string $logChannel The Log Channel of this call - * * @return void */ - public function setup(string $logChannel): void; + public function setup(): void; /** * Returns a fully constructed object based on $name using $args and $share as constructor arguments if supplied diff --git a/src/Core/DiceContainer.php b/src/Core/DiceContainer.php index 2c1f5faba7..778192388b 100644 --- a/src/Core/DiceContainer.php +++ b/src/Core/DiceContainer.php @@ -11,7 +11,6 @@ namespace Friendica\Core; use Dice\Dice; use Friendica\DI; -use Psr\Log\LoggerInterface; /** * Wrapper for the Dice class to make some basic setups @@ -39,13 +38,10 @@ final class DiceContainer implements Container * * @deprecated * - * @param string $logChannel The Log Channel of this call - * * @return void */ - public function setup(string $logChannel): void + public function setup(): void { - $this->setupContainerForLogger($logChannel); $this->setupLegacyServiceLocator(); } @@ -75,13 +71,6 @@ final class DiceContainer implements Container $this->container = $this->container->addRule($name, $rule); } - private function setupContainerForLogger(string $logChannel): void - { - $this->container = $this->container->addRule(LoggerInterface::class, [ - 'constructParams' => [$logChannel], - ]); - } - private function setupLegacyServiceLocator(): void { DI::init($this->container);