Jak nastavit vlastní logger?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
CZechBoY
Člen | 3608
+
0
-

Zdravím,
chtěl bych si nastavit svůj logger v Tracy.
Funkcionalita je jasná, chci v produkčním režmu použít klasickej logger do souboru a v debug režimu vyhodit exception.
Problém mám teda už při registraci do konfiguráku. Zkoušel jsem

services:
	tracy.logger:
            class: Tracy\ILogger
            factory: App\DebugProductionLogger
            arguments: [%appDir%/../log]

ale když loguju přes Debugger::log('zprava') tak se vždy použije defaultní Tracy\Logger.

Co dělám špatně?
Díky.

harmim
Člen | 26
+
0
-

Nevím, jestli ti to nějak pomůže, ale možná, že by ses mohl nějakým způsobem inspirovat implementací Monologu od Kdyby https://github.com/…xtension.php

Jan Tvrdík
Nette guru | 2595
+
+1
-

@CZechBoY Tracy je statická a DI-nekompatibilní, musíš (aspoň zatím) ručně zavolat

Tracy\Debugger::setLogger($container->getByType(Tracy\ILogger::class));

Založil jsem na to issue, snad to někdo implementuje. Nebo jestli nechceš jen pasivně čekat, tak pošli PR. @DavidMatějka k tomu na Gitteru prozradil spoilery.