2 namespace TYPO3\CMS\Core\Log;
53 $this->rootLogger = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(Logger::class,
'');
64 $this->loggers = array();
84 $separators = array(
'_',
'\\');
85 $name = str_replace($separators,
'.', $name);
86 if (isset($this->loggers[$name])) {
87 $logger = $this->loggers[$name];
91 $logger = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(Logger::class, $name);
92 $this->loggers[$name] = $logger;
93 $this->setWritersForLogger($logger);
94 $this->setProcessorsForLogger($logger);
107 $this->loggers[$name] = null;
117 return array_keys($this->loggers);
126 protected function setWritersForLogger(
Logger $logger)
129 foreach ($configuration as $severityLevel => $writer) {
130 foreach ($writer as $logWriterClassName => $logWriterOptions) {
134 $logWriter = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance($logWriterClassName, $logWriterOptions);
135 $logger->
addWriter($severityLevel, $logWriter);
136 }
catch (\Psr\Log\InvalidArgumentException $e) {
137 $logger->
warning(
'Instantiation of LogWriter "' . $logWriterClassName .
'" failed for logger ' . $logger->
getName() .
' (' . $e->getMessage() .
')');
138 }
catch (\TYPO3\CMS\Core\Log\Exception\InvalidLogWriterConfigurationException $e) {
139 $logger->
warning(
'Instantiation of LogWriter "' . $logWriterClassName .
'" failed for logger ' . $logger->
getName() .
' (' . $e->getMessage() .
')');
151 protected function setProcessorsForLogger(Logger $logger)
154 foreach ($configuration as $severityLevel => $processor) {
155 foreach ($processor as $logProcessorClassName => $logProcessorOptions) {
157 $logProcessor = null;
159 $logProcessor = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance($logProcessorClassName, $logProcessorOptions);
160 $logger->addProcessor($severityLevel, $logProcessor);
161 }
catch (\Psr\Log\InvalidArgumentException $e) {
162 $logger->warning(
'Instantiation of LogProcessor "' . $logProcessorClassName .
'" failed for logger ' . $logger->getName() .
' (' . $e->getMessage() .
')');
163 }
catch (\TYPO3\CMS\Core\Log\Exception\InvalidLogProcessorConfigurationException $e) {
164 $logger->warning(
'Instantiation of LogProcessor "' . $logProcessorClassName .
'" failed for logger ' . $logger->getName() .
' (' . $e->getMessage() .
')');
182 $explodedName = explode(
'.', $loggerName);
185 $configurationKey = $configurationType .
'Configuration';
186 $configuration =
$GLOBALS[
'TYPO3_CONF_VARS'][
'LOG'];
187 $result = $configuration[$configurationKey] ?: array();
190 foreach ($explodedName as $partOfClassName) {
191 if (!empty($configuration[$partOfClassName][$configurationKey])) {
192 $result = $configuration[$partOfClassName][$configurationKey];
194 $configuration = $configuration[$partOfClassName];
197 foreach ($result as $level => $unused) {
200 }
catch (\Psr\Log\InvalidArgumentException $e) {
201 throw new \Psr\Log\InvalidArgumentException(
'The given severity level "' . htmlspecialchars($level) .
'" for ' . $configurationKey .
' of logger "' . $loggerName .
'" is not valid.', 1326406447);