En blog om log

I dag skal vi snakke litt om logging! Det er mye viktig og spennende som kan sies om logging, men jeg har egentlig bare lyst til å snakke om én eneste ting: den vanskelige samtalen. Den dere tar når noe har gått galt.

Jeg har hatt gleden av å lese mye logger de siste par årene. En del av loggingen har jeg skrevet selv, en del er skrevet av andre. Samme hvem som har skrevet det som logges, hvilken bransje og teknologi det gjelder har er det én ting som alltid gjelder: jeg skjønner faen ikke hva som foregår. For all del, jeg skjønner nøyaktig hva som har skjedd. For det akkurat det som står. Men jeg skjønner ikke hvorfor, og jeg skjønner ikke hva jeg skal gjøre.

"An error has occured parsing XML".

Javel. Det var synd. Da har vi sikkert ikke XML. Og så, for å skjønne hva det egentlig er som foregår må jeg dra opp koden, sørge for at jeg sitter med siste versjon. Finne fram til stedet der det logges, lese masse omkringliggende kode før jeg kan begynne å gjette hva i all verden det er som foregår.

Dette er piss! Når vi utviklere skriver kode og lager feilhåndtering så vet vi utmerket vel hva som kan gå galt. Vi vet hvilken unntakssituasjon som kan oppstå, vi vet hvor sannsynlig det er og vi vet hvilken konsekvens det vil ha. Og likevel så skriver vi “An error has occured parsing XML input”.

trist server.jpg

En god loggsetning skal minimum inneholde følgende:

  1. Hva skjedde. Denne nailer vi hver gang!
  2. Sannsynlige årsaker til at det skjedde. Av og til kan det være å naile det nøyaktig, men du har mange tanker om det når du lager feilhåndteringen. Hvis du klarer å komme på disse tankene 18 måneder senere er du skarpere enn meg!
  3. Antatt konsekvens, med fokus på forretningen. Hva betyr dette for brukerne av løsningen? At betalinger ikke kan gjennomføres? At prisgrunnlaget ikke blir oppdatert? Gjelder det én bruker eller flere?
  4. Anbefalt tiltak for den som leser loggene. Skal det iverksettes tiltak umiddelbart? Ligger feilen intern i applikasjonen eller er det sannsylig at den ligger hos noen andre? I så fall hvem, og hvor finnes det kontaktinformasjon?
"An error has occured parsing XML from the payment provider. This can be caused 
by unexpected error responses or breaking changes in the schema. Users who get
this error will be unable to complete their transaction and are prompted to try
again. If this error occurs many times within a short timeframe it should be
looked into immidiately. Try contacting the payment provider at [snip]. The
unparsable response was: [snip]"

Det er ikke verre enn det! Det tar minimalt med ekstra tid å skrive god logging, men det kan spare utrolig mye tid lengre ned i løpya. En god applikasjon lever i mange år, og hvis loggene forteller deg en historie om hva som har skjedd… vel, du kan takke meg senere!

glad server.jpg

Hva er din beste loggsetning? Putt den i kommentarfeltet under!

Like what you read? Give Jøran Vagnby Lillesand a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.