[TYPO3-UG Freiburg] Logging: Writer Configuration

Steffen Müller typo3 at t3node.com
Mon Jan 13 16:52:09 CET 2014


On 13.01.2014 15:52 Mikel wrote:
>         $logger =
> \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Log\LogManager')->getLogger('Subscriptions');
> 

hier liegt die Ursache.
getLogger erwartet einen Logger Namen, der dann in der Konfiguration
angesprochen wird.
Wenn Du getLogger('Subscriptions') verwendest, dann muss Deine
Konfiguration so aussehen:

$GLOBALS['TYPO3_CONF_VARS']['LOG']['Subscriptions']['writerConfiguration']
= array(
    \TYPO3\CMS\Core\Log\LogLevel::ERROR => array(
        'TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter' => array(
            'logFile' => 'typo3temp/logs/error.log'
        ),
    ),
    \TYPO3\CMS\Core\Log\LogLevel::DEBUG => array(
        'TYPO3\\CMS\\Core\\Log\\Writer\\FileWriter' => array(
            'logFile' => 'typo3temp/logs/debug.log'
        ),
    ),
);

Das ist aber nicht sehr flexibel, weil die log Meldungen aus allen
Klassen in der gleichen debug.log bzw. error.log landen.

Wenn Du pro Klasse eigene Dateien konfigurieren möchtest, dann
verwendest Du in der Regel getLogger(__CLASS__) und instanziierst für
jede Klasse in der Du loggen willst einen neuen Logger.

Den loggingService würde ich deshalb weglassen. Er fügt weder
Funktionalität hinzu noch kapselt er etwas weg.

verwende in Deinen Controllern einfach:
$this->logger =
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Core\Log\LogManager')->getLogger(__CLASS__);


(am besten im constructor)

und dann $this->logger->error('Foobar);



-- 
cheers,
Steffen

Active Contributor TYPO3 CMS

TYPO3 Blog: http://www.t3node.com/
Twitter: @t3node - http://twitter.com/t3node


More information about the TYPO3-UG-Freiburg mailing list