63 $this->loggers = array();
78 public function getLogger($name =
'') {
82 $separators = array(
'_',
'\\');
83 $name = str_replace($separators,
'.', $name);
84 if (isset($this->loggers[$name])) {
85 $logger = $this->loggers[$name];
90 $this->loggers[$name] = $logger;
91 $this->setWritersForLogger($logger);
92 $this->setProcessorsForLogger($logger);
104 $this->loggers[$name] = NULL;
113 return array_keys($this->loggers);
123 protected function setWritersForLogger(\
TYPO3\CMS\Core\Log\
Logger $logger) {
125 foreach ($configuration as $severityLevel => $writer) {
126 foreach ($writer as $logWriterClassName => $logWriterOptions) {
131 $logger->addWriter($severityLevel, $logWriter);
132 }
catch (\RangeException $e) {
133 $logger->warning(
'Instantiation of LogWriter "' . $logWriterClassName .
'" failed for logger ' . $logger->getName() .
' (' . $e->getMessage() .
')');
146 protected function setProcessorsForLogger(\
TYPO3\CMS\Core\Log\
Logger $logger) {
148 foreach ($configuration as $severityLevel => $processor) {
149 foreach ($processor as $logProcessorClassName => $logProcessorOptions) {
151 $logProcessor = NULL;
154 $logger->addProcessor($severityLevel, $logProcessor);
155 }
catch (\RangeException $e) {
156 $logger->warning(
'Instantiation of LogProcessor "' . $logProcessorClassName .
'" failed for logger ' . $logger->getName() .
' (' . $e->getMessage() .
')');
173 $explodedName = explode(
'.', $loggerName);
176 $configurationKey = $configurationType .
'Configuration';
177 $configuration =
$GLOBALS[
'TYPO3_CONF_VARS'][
'LOG'];
178 $result = $configuration[$configurationKey] ?: array();
181 foreach ($explodedName as $partOfClassName) {
182 if (!empty($configuration[$partOfClassName][$configurationKey])) {
183 $result = $configuration[$partOfClassName][$configurationKey];
185 $configuration = $configuration[$partOfClassName];
188 foreach (
$result as $level => $unused) {
191 }
catch (\RangeException $e) {
192 throw new \RangeException(
'The given severity level "' . htmlspecialchars($level) .
'" for ' . $configurationKey .
' of logger "' . $loggerName .
'" is not valid.', 1326406447);
static validateLevel($level)
const CONFIGURATION_TYPE_PROCESSOR
static makeInstance($className)
if($list_of_literals) if(!empty($literals)) if(!empty($literals)) $result
Analyse literals to prepend the N char to them if their contents aren't numeric.
const CONFIGURATION_TYPE_WRITER
if(!defined('TYPO3_MODE')) $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_userauth.php']['logoff_pre_processing'][]
getConfigurationForLogger($configurationType, $loggerName)