Zwischenstand
This commit is contained in:
83
Classes/Service/LoggingService.php
Normal file
83
Classes/Service/LoggingService.php
Normal file
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the package thucke/th-rating.
|
||||
*
|
||||
* For the full copyright and license information, please read the
|
||||
* LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace WapplerSystems\BookmarksLikesRatings\Service;
|
||||
|
||||
use TYPO3\CMS\Core\Log\Logger;
|
||||
use TYPO3\CMS\Core\Log\LogManager;
|
||||
use TYPO3\CMS\Core\Log\Writer\DatabaseWriter;
|
||||
use TYPO3\CMS\Core\Log\Writer\FileWriter;
|
||||
use TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface;
|
||||
use TYPO3\CMS\Extbase\Object\ObjectManagerInterface;
|
||||
|
||||
/**
|
||||
* Factory for model objects
|
||||
*
|
||||
* @version $Id:$
|
||||
* @license http://opensource.org/licenses/gpl-license.php GNU protected License, version 2
|
||||
*/
|
||||
class LoggingService
|
||||
{
|
||||
/**
|
||||
* @var \TYPO3\CMS\Extbase\Object\ObjectManagerInterface
|
||||
*/
|
||||
protected $objectManager;
|
||||
/**
|
||||
* @var \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface
|
||||
*/
|
||||
protected $configurationManager;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* Must overrule the abstract class method to avoid self referencing
|
||||
* @param \TYPO3\CMS\Extbase\Object\ObjectManagerInterface $objectManager
|
||||
* @param \TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface $configurationManager,
|
||||
*/
|
||||
public function __construct(
|
||||
ObjectManagerInterface $objectManager,
|
||||
ConfigurationManagerInterface $configurationManager
|
||||
) {
|
||||
$this->objectManager = $objectManager;
|
||||
$this->configurationManager = $configurationManager;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a logger instance
|
||||
* The configuration of the logger is modified by extension typoscript config
|
||||
*
|
||||
* @param string $name the class name which this logger is for
|
||||
* @return \TYPO3\CMS\Core\Log\Logger
|
||||
*/
|
||||
public function getLogger(string $name): Logger
|
||||
{
|
||||
/** @var array $writerConfiguration */
|
||||
$writerConfiguration = $GLOBALS['TYPO3_CONF_VARS']['LOG']['Thucke']['ThRating']['writerConfiguration'];
|
||||
$settings = $this->configurationManager->getConfiguration(
|
||||
ConfigurationManagerInterface::CONFIGURATION_TYPE_SETTINGS,
|
||||
'thRating',
|
||||
'pi1'
|
||||
);
|
||||
if (is_array($settings['logging'])) {
|
||||
foreach ($settings['logging'] as $logLevel => $logConfig) {
|
||||
$levelUppercase = strtoupper($logLevel);
|
||||
if (!empty($logConfig['file'])) {
|
||||
$writerConfiguration[constant('\TYPO3\CMS\Core\Log\LogLevel::' . $levelUppercase)][FileWriter::class] = ['logFile' => $logConfig['file']];
|
||||
}
|
||||
if (!empty($logConfig['database'])) {
|
||||
$writerConfiguration[constant('\TYPO3\CMS\Core\Log\LogLevel::' . $levelUppercase)][DatabaseWriter::class] = ['table' => $logConfig['table']];
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!empty($writerConfiguration)) {
|
||||
$GLOBALS['TYPO3_CONF_VARS']['LOG']['Thucke']['ThRating']['writerConfiguration'] = $writerConfiguration;
|
||||
}
|
||||
|
||||
return $this->objectManager->get(LogManager::class)->getLogger($name);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user