Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
50.00% |
1 / 2 |
CRAP | |
66.67% |
8 / 12 |
| LoggerChannelFactory | |
0.00% |
0 / 1 |
|
50.00% |
1 / 2 |
5.93 | |
66.67% |
8 / 12 |
| get | |
100.00% |
1 / 1 |
3 | |
100.00% |
8 / 8 |
|||
| addLogger | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 4 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\Logger\LoggerChannelFactory. | |
| */ | |
| namespace Drupal\Core\Logger; | |
| use Psr\Log\LoggerInterface; | |
| use Symfony\Component\DependencyInjection\ContainerAwareInterface; | |
| use Symfony\Component\DependencyInjection\ContainerAwareTrait; | |
| /** | |
| * Defines a factory for logging channels. | |
| */ | |
| class LoggerChannelFactory implements LoggerChannelFactoryInterface, ContainerAwareInterface { | |
| use ContainerAwareTrait; | |
| /** | |
| * Array of all instantiated logger channels keyed by channel name. | |
| * | |
| * @var \Drupal\Core\Logger\LoggerChannelInterface[] | |
| */ | |
| protected $channels = array(); | |
| /** | |
| * An array of arrays of \Psr\Log\LoggerInterface keyed by priority. | |
| * | |
| * @var array | |
| */ | |
| protected $loggers = array(); | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function get($channel) { | |
| if (!isset($this->channels[$channel])) { | |
| $instance = new LoggerChannel($channel); | |
| // If we have a container set the request_stack and current_user services | |
| // on the channel. It is up to the channel to determine if there is a | |
| // current request. | |
| if ($this->container) { | |
| $instance->setRequestStack($this->container->get('request_stack')); | |
| $instance->setCurrentUser($this->container->get('current_user')); | |
| } | |
| // Pass the loggers to the channel. | |
| $instance->setLoggers($this->loggers); | |
| $this->channels[$channel] = $instance; | |
| } | |
| return $this->channels[$channel]; | |
| } | |
| /** | |
| * {@inheritdoc} | |
| */ | |
| public function addLogger(LoggerInterface $logger, $priority = 0) { | |
| // Store it so we can pass it to potential new logger instances. | |
| $this->loggers[$priority][] = $logger; | |
| // Add the logger to already instantiated channels. | |
| foreach ($this->channels as $channel) { | |
| $channel->addLogger($logger, $priority); | |
| } | |
| } | |
| } |