Jump to content

Debugging Howto: Difference between revisions

From NusaATK
No edit summary
 
No edit summary
 
Line 1: Line 1:
'''Jasper:'''
#redirect [[Turning on debugging at runtime]]
Bij zandbakken op s4 staat het bijzonder slordig als klanten in hun testversie deze informatie te zien krijgen. (daar krijg je in contact met een klant vrijwel altijd vragen over)
 
'''Ivo:'''
Het is met name een kwestie van informatieverstrekking. Bij de Achievo
test installaties van Waag en Koning/Renes heb ik bewust de debug aan
laten staan, omdat ik die info wil hebben als ze een fout melden. Ik heb
ze dan ook erbij gezegd wat dit is, waarvoor het is, en dat ik het graag
wil ontvangen als ze een fout rapporteren. Op die manier is het geen
probleem dat het er staat en heeft de klant zelfs kunnen zien dat we
hier een methodiek voor hebben.
 
In alle M5/M6 platformen en ATK5 webapplicaties kun je gebruik maken van
'smart debugging'. Daarbij gebruik je 1 van deze 2 methodes (of een combinatie):
 
 
==Methode 1: debugging op IP==
 
Syntax:
 
  $config_smart_debug[] = array("type"=>"ip","list"=>array("195.168.0.10","195.168.0.11"));
 
Dit is de nieuwe syntax voor de oude if-constructie. Het nadeel van deze
methode is dat je zelf altijd debug hebt, en je dus de config moet
aanpassen of je wil kijken of de site het ook doet zonder debuginfo
(bijv. om heisenbugs uit te sluiten).
 
==Methode 2: debugging ter plekke aanzetten als je hem nodig hebt==
 
Dit is een methode die werkt *ZONDER* de config aan te passen (dus nooit
meer per ongeluk aan!). Je moet de feature alleen 1-malig activeren in
de config en een wachtwoord verzinnen. Dit is wat mij betreft de
voorkeurmethode.
 
Syntax eenmalig in de config:
 
  $config_smart_debug[] = array("type"=>"request", "key"=>"eenwachtwoord");
 
Nadat je deze in je config hebt staan, kun je als volgt debug *realtime*
aktiveren:
 
  ''<nowiki>http://eensite/index.php?atkdebug[key]=eenwachtwoord</nowiki>''
 
Alle vervolgrequests hebben automatisch debuginfo, totdat je hem weer
uitschakelt.
 
Het mooie is dat dit wachtwoord de debug *ALLEEN* voor je eigen sessie
aktiveert. De klant krijgt dus niets te zien. Wil je debug weer
uitzetten, dan volstaat het om even een verkeerd wachtwoord te zetten, bijv:
 
  ''<nowiki>http://eensite/index.php?atkdebug[key]=off</nowiki>''
 
Wil je dit even uitproberen, ik heb dit op mijn eigen site draaien met
'magicbeans' als wachtwoord:
 
gewoon site opvragen:
 
  ''<nowiki>http://beta.epointment.com/</nowiki>''
 
debug aktiveren:
 
  ''<nowiki>http://beta.epointment.com/index.php?atkdebug[key]=magicbeans</nowiki>''
 
gewone vervolg request zal nu ook debuginfo hebben:
 
  ''<nowiki>http://beta.epointment.com/</nowiki>''
 
debug deaktiveren:
 
  ''<nowiki>http://beta.epointment.com/index.php?atkdebug[key]=x</nowiki>''
 
Het is ook mogelijk om het debug level real-time aan te passen. Dit werkt op een zelfde manier als het aanzetten van de debug informatie in je sessie:
 
  ''<nowiki>http://eensite/index.php?atkdebug[level]=2</nowiki>''
 
Hiermee kun je dus ook debugging uitzetten:
 
  ''<nowiki>http://eensite/index.php?atkdebug[level]=0</nowiki>''
 
Dit werkt ook gewoon als je debugging op IP niveau gebruikt. Het eerder door Ivo opgenoemde nadeel van deze methode hoeft dus niet een nadeel te zijn.

Latest revision as of 17:26, 21 September 2006