Zvláštní chování Nette\Debug

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

Ahoj, přešel jsem před pár dny na Nette 2.0 (ze starší verze 1.0) a narazil jsem na pár věcí, které mi nedávají smysl. I když je docela možné, že se vyskytovaly i ve starším Nette. Týkají se třídy Nette\Debug.

  1. Myslel jsem, že pokud nechci používat laděnku, logování chyb do souboru atd., stačí nezapínat Debug přes Debug::enable(). Když ale v bootstrapu tento řádek zakomentuju a někde vyhodím warning, skončí stejně moje aplikace chybou
Warning: nejaky_warning on line nejaka_lajna

Fatal error: Uncaught exception 'InvalidStateException' with message 'Logging directory is not specified in Nette\Debug::$logDirectory.

Nette\Debug jsem vypnul, tak proč po mě chce logovací adresář?

  1. Jak funguje práce s proměnnou Debug::$logDirectory ? Když do bootstrapu napíšu:
Debug::$logDirectory = APP_DIR . '/log';
Debug::dump(APP_DIR);
Debug::enable();
Debug::neexistujiciMetoda();

vyhodí mi to na serveru chybu:

"/mnt/data/accounts/w/atd.atd./app" (63)

Nette\Debug FATAL ERROR: thrown DirectoryNotFoundException: Directory '/mnt/data/accounts/w/atd.atd./app/../log' is not found or is not directory. while processing FatalErrorException: Call to undefined method Nette\Debug::neexistujiciMetoda()

kde se před tím /log vzaly ty dvě tečky?

Díky za odpovědi

Editoval xxxObiWan (9. 3. 2011 15:25)

Mikulas Dite
Člen | 756
+
0
-
  1. Nemáš vyplé $catchExceptions?
  2. použila se hodnota, co byla v Debug::enable($mode, $logDirectory, ...);, je to možné?
Stig
Člen | 29
+
0
-

Taky s tím mám problém.
Na localhostu vse fungovalo a na hostingu.WZ.cz to hazi tuhle chybu

Logging directory is not specified in Debug::$logDirectory.' in /3w/wz.cz/t/tommyg/tiqe/libs/Nette/Debug/Debug.php:286

Editoval Stig (9. 3. 2011 21:04)

nanuqcz
Člen | 822
+
0
-

Stig: Na localhostu totiž nepotřeboval nic zapisovat do logu, všechny chyby zobrazoval v debugBaru případně v laděnce :-)

Patrik Votoček
Člen | 2221
+
0
-
  1. Debug::$logDirectory = APP_DIR . '/log'; musíš nastavit až za Debug::enable(); jinak ti ji přenastaví.
nanuqcz
Člen | 822
+
0
-
  1. To je zvláštní, dneska už mi to funguje tak, jak jsem předtím očekával :-D zničehonic
  2. Máte oba pravdu, díky :-)