kterak mit akcni ladenku a zaroven logovani do souboru?
- wdolek
- Člen | 331
nejak se mi nedari prijit na to, jak zaridit, aby v development
rezimu ladenka nejen kricela chyby na vystup, ale zaroven je i logovala. cucel
sem do zdrojaku Debug
, ale moc jsem toho nevycetl. lze to nejak
jednoduse nastavit.. nekde..?
(duvodem je to, ze si zjednodusuji praci a nechavam testera klikat na aplikaci v development modu. vzhledem k tomu, ze tester nema poneti, co je to nejaky back-trace, rad bych mel i chyby zalogovane v nejakem souburku, stejne jako by se chyba zalogovala v production)
zkousel jsem toto:
Debug::enable(Debug::DEVELOPMENT, Environment::getVariable('logDir') . '/error.log');
ale po logu ani pamatka
- Lopata
- Člen | 139
wdolek napsal(a):
hmm, toho jsem se trosku obaval. bylo by prilis troufale dat neco takoveho do „wishlistu“? precejen mi prijde zvlastni, ze je to takto natvrdo nastavene.
Podle mě to je zbytečné. Když v development módu objevím chybu, opravím ji. Proč bych ji proboha logoval…? Proč to děláš…?
- wdolek
- Člen | 331
Proč to děláš…?
ve firme kde delam me nikdo neposloucha, takze jsem rad, ze mam alespon ten „devel“ server (coz je muj notebook)… zadne testovaci prostredi nemam k dispozici. testeri tedy testuji primo aplikaci na devel prostredi.
samozrejme bych mohl pred kazdym testem nastavit v bootstrap.php
mod na produkcni, ale… kdyz clovek je linej porad nekde prepisovat
1 radek.
navic instruktaz testeru v tom, co mi maji rict kdyz aplikace nekde vyhnije, je … mozna az nemozna
- redhead
- Člen | 1313
Tak na tohle jsem teďka také narazil.
Potřeboval jsem logovat „chybu“, kdy nebyl dostupný jiný server, z kterého čerpám data. Není to nutně chyba, která by měla zastavit zobrazení stránky (prostě napíšu sorry, možná příště) a to ani nevyhazuju výjimku, nýbrž pouze volám Debug::log($message) (nebo logMessage, už nevím, nemám při sobě). Jde o to, aby pak člověk, co to bude mít na starost v logu viděl, že se něco s tím serverem stalo (ať už nedostupnost, změna url, ..). Ale tohle mi bohužel při ladění vadí. Místo toho aby to prostě loglo a nekecalo, že neexistuje log soubor, a mohl jet dál.
Takhle si člověk musí napsat vlastní Logger, i když by to nebylo nutné (kdyby se to povolilo i v DEV modu)
- natrim
- Člen | 73
co použít automatické přepínání mezi produkčním a development modem
pomoci IP adresy uživatele?
něco jako:
<?php
if(Environment::getHttpRequest()->remoteAddress !== '127.0.0.1'){
Debug::enable(Debug::PRODUCTION,TRUE);
}else{
Debug::enable(Debug::DEVELOPMENT);
}
?>
edit:
jinak pokud ctu spravne tak je mozny zapnout log i v dev modu napr:
<?php
ini_set('error_log', Environment::expand('%logDir%/php_error.log'));
ini_set('log_errors', true);
?>
Editoval natrim (28. 6. 2010 11:24)
- pekelnik
- Člen | 462
natrim napsal(a):
co použít automatické přepínání mezi produkčním a development modem pomoci IP adresy uživatele?
něco jako:<?php if(Environment::getHttpRequest()->remoteAddress !== '127.0.0.1'){ Debug::enable(Debug::PRODUCTION,TRUE); }else{ Debug::enable(Debug::DEVELOPMENT); } ?>
edit:
jinak pokud ctu spravne tak je mozny zapnout log i v dev modu napr:<?php ini_set('error_log', Environment::expand('%logDir%/php_error.log')); ini_set('log_errors', true); ?>
Ano tohle všechno jde udělat – především při ajaxu se ale často hodí si tu chybu prohlídnout pěkně na RSOD a ne to někde lovit z 40px vysokýho firebugu…
Osobně nechápu důvod proč by vývojář „nemohl“ zapnout logování – aniž by se při tom nepřipravil o laděnku.
- Manny7
- Člen | 67
<?php ini_set('error_log', Environment::expand('%logDir%/php_error.log')); ini_set('log_errors', true); ?>
Taky se připojuju k prosbě – nejde to trošku jednoduše „potunit“,
aby to i v develu logovalo?
Zkoušel jsem použít výše citovaný kód, ale pořádně nevím, kam jej
umístit – zkoušel jsem do bootstrapu hned za nastavení laděnky,
ale nic
- Dr.Diesel
- Člen | 53
Kucii kdyz neco potrebuju, omrknu kod, jestli to nedam sam, nez zacnu psat, „at to David zaridi“. :-P
Nechal nam tam nastesti lehkou mezirku, kterou tam to logovani natlacite :) . A sice ze napred to zapnete v production modu a pak prepnete do auto/devu. Logovani zustane zapnute.
NDebug::enable(NDebug::PRODUCTION,'/cesta/klogu/muj_php_error.log');
NDebug::enable(NDebug::DETECT,'/cesta/klogu/muj_php_error.log');
Pokud predchazi NDebug::enable()
nacteni
NEnvironment::loadConfig()
, neni cesta potreba, bude logovat do
defaultniho aplikacniho log adresare.
NDebug::enable(NDebug::PRODUCTION);
NDebug::enable();
Enjoy.
Editoval Dr.Diesel (29. 8. 2010 17:17)
- David Grudl
- Nette Core | 8228
Nyní stačí nastavit Debug::$logFile
na cestu k souboru a
logování se tím vynutí.