Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

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 ;)

Slide 7

Slide 7 text

Tips, tricks & pitfalls (cont) ● Grep, sed, awk, sort, uniq ● Critical/Exception? ○ Ja, maar ook.... Sentry!!

Slide 8

Slide 8 text

Now, go forth and log! Image credits Logging truck and bush taxi accident: Wikipedia uploader Amcaja The Sentry: Marvel Comics