Logging
Logging is the cutting, skidding, on-site
processing, and loading of trees or logs onto
trucks or skeleton cars.
Slide 3
Slide 3 text
Waarom zou ik?
● Wat gebeurde er?
● Wanneer gebeurde het?
● Waar gebeurde het? (en waar niet?)
● Welke stappen zijn uitgevoerd?
● En soms de waardes van parameters en
responses
Slide 4
Slide 4 text
Okay, maar hoe dan?
● Inspiratie: log4j (java)
○ PHP: log4php
○ Python: logging (In standard library!)
○ Ruby: log4r, logging
include('Logger.php');
$logger = Logger::getLogger("main");
$logger->info("This is an informational message.");
$logger->warn("I'm not feeling so good...");
INFO - This is an informational message.
WARN - I'm not feeling so good...
Slide 5
Slide 5 text
Tips, tricks & pitfalls
● Gebruik verschillende levels effectief
○ (WARN == INFO) == False
● Debugging UIT op production
● Pas op met object/functie aanroepen
○ $logger->debug("Doing something with object " .
$this->nastyLongObjectLookup()); // *yawn* App hangs
Slide 6
Slide 6 text
Tips, tricks & pitfalls (cont)
● Ben duidelijk/helder
○ $logger->info("Gebruiker succesvol ingelogd"); // Ja
maar wie dan?
$logger->info("Gebruiker " . $user->id . " succesvol
ingelogd");
○ $logger->warn("Onverwachte statuscode teruggekregen
van webservice"); // Uh, welke dan?
$logger->warn("Onverwachte statuscode " . $response-
>code . " teruggekregen van websevice");
$logger->debug("Response data was: " . $response-
>data"); // Echte programmeurs hebben geen debugger
nodig ;)