return array(); } $classes = $c->get('log.handler.classes'); $writerNames = array_map('trim', $writerNames); $writers = array(); foreach ($writerNames as $writerName) { if (isset($classes[$writerName])) { $writers[$writerName] = $c->get($classes[$writerName]); } } return array_values($writers); }), 'log.processors' => array(DI\get('Piwik\\Plugins\\Monolog\\Processor\\SprintfProcessor'), DI\get('Piwik\\Plugins\\Monolog\\Processor\\ClassNameProcessor'), DI\get('Piwik\\Plugins\\Monolog\\Processor\\RequestIdProcessor'), DI\get('Piwik\\Plugins\\Monolog\\Processor\\ExceptionToTextProcessor'), DI\get('Monolog\\Processor\\PsrLogMessageProcessor'), DI\get('Piwik\\Plugins\\Monolog\\Processor\\TokenProcessor')), 'Piwik\\Plugins\\Monolog\\Handler\\FileHandler' => DI\object()->constructor(DI\get('log.file.filename'), DI\get('log.level'))->method('setFormatter', DI\get('log.lineMessageFormatter.file')), 'log.lineMessageFormatter.file' => DI\object('Piwik\\Plugins\\Monolog\\Formatter\\LineMessageFormatter')->constructorParameter('allowInlineLineBreaks', false), 'Piwik\\Plugins\\Monolog\\Handler\\DatabaseHandler' => DI\object()->constructor(DI\get('log.level'))->method('setFormatter', DI\get('Piwik\\Plugins\\Monolog\\Formatter\\LineMessageFormatter')), 'Piwik\\Plugins\\Monolog\\Handler\\WebNotificationHandler' => DI\object()->constructor(DI\get('log.level'))->method('setFormatter', DI\get('Piwik\\Plugins\\Monolog\\Formatter\\LineMessageFormatter')), 'log.level' => DI\factory(function (ContainerInterface $c) { if ($c->has('ini.log.log_level')) { $level = strtoupper($c->get('ini.log.log_level')); if (!empty($level) && defined('Piwik\\Log::' . strtoupper($level))) { return Log::getMonologLevel(constant('Piwik\\Log::' . strtoupper($level))); } } return Logger::WARNING; }), 'log.file.filename' => DI\factory(function (ContainerInterface $c) { $logPath = $c->get('ini.log.logger_file_path'); // Absolute path if (strpos($logPath, '/') === 0) { return $logPath; } // Remove 'tmp/' at the beginning if (strpos($logPath, 'tmp/') === 0) { $logPath = substr($logPath, strlen('tmp')); } if (empty($logPath)) { // Default log file