28.5.2018: Was sind eigentlich Log-Dateien und wieso sind sie gut? Und wieso böse?

Ich bin ja der festen Meinung, dass man Unwisenheit und Verunsicherung am besten mit Information begegnet. Außerdem habe ich erstens kein Blog mehr und kann somit nur hier schreiben — und zweitens habe ich in den letzten Wochen kaum anderes getan, als mich über die DSGVO und viele „Warums?“ zu unterhalten. Und über Details und noch mehr Details und noch mehr Details.

Ich mach also mal weiter mit der Information.

Was sind Log-Dateien?
Log-Dateien sind ein fester Teil der Computer-Welt. In jeder Sekunde werden Millionen von ihnen angelegt, verändert, erweitert, wieder gelöscht.
Warum?
Um das zu erklären mache ich erst einen kleinen Ausflug dorthin, wo wir Programmierer arbeiten. Also zur Frage:

Was tun Programmierer?
Sie bringen dem Computer bei, bestimmte Abläufe auszuführen und dabei auf Reaktionen des Benutzers zu reagieren.

Computer sind nämlich ziemlich blöd.
Um das alles zu erklären, baue ich mal eine Metapher aus der nicht-Computer-Welt:
Nehmen wir an, wir möchten, dass der Computer für uns einkauft. Einem Menschen kann man sagen: Schau mal in den Kühlschrank und dann kauf mal ein. Implizit meinen wir damit dann natürlich:
Schau mal in den Kühlschrank
Prüfe, was von den Dingen, die wir hier so gern essen noch da sind und welche fehlen
Geh/fahr in den oder die Läden und kaufe die Dinge ein, die wir gern essen und die nicht mehr im Kühlschrank sind.

Und für einen Computer ist selbst diese erweiterte Handlungsanweisung noch viel, viel, viel zu wenig detailliert. Das beginnt schon bei „Schau mal in den Kühlschrank“ — da müsste man einem Computer sagen:
Prüfe, ob Du weisst, wo der Kühlschrank ist
Gleiche Deine eigene Position mit der der Kühlschrankes ab.
Setze Dich in Bewegung in Richtung Kühlschrank
– Prüfe vor jedem Schritt, ob da ein Hindernis ist

… und so weiter und so weiter. Ihr seht, Computer sind nicht die klügsten.

Viele kleine Schritte
Wenn ich also etwas programmiere, dann reicht es nicht, mich auf meinen Verstand zu verlassen, sondern ich muss die Aufgabe, die mein späteres Programm erfüllen soll in sehr, sehr viele logische Teilschritte zerlegen. Manchmal habe ich Glück und jemand anderes hat einen Teil der Schritte schon einmal gebraucht und ich kann das übernehmen. Vielleicht reicht es mir also, einen Teil von jemand anderem zu übernehmen und wirklich nur „Geh zum Kühlchrank“ zu tippen (natürlich in den Worten, die der Computer versteht, aber um die soll es hier gerade nicht gehen).

Fehlersuche
Starte ich mein kleines Programm dann das erste Mal, dann besteht eine hohe Wahrscheinlichkeit, dass es nicht funktioniert.
Vielleicht …
– habe ich mich irgendwo vertippt
– habe ich einen Logikfehler (Im Beispiel könnte ich vergessen haben, dass der Computer eine Einkaufstasche mitnehmen muss und jetzt wirft der Blödian im Laden alles links neben sich auf den Boden statt in die Tasche)
– funktioniert der Teil, den ich von jemand anderem übernommen habe nicht.
– oder nur eingeschränkt (Im Beispiel könnte der andere Programmierer Wohnzimmer und Küche in einem Raum haben und jetzt findet sein Programmteil den Kühlschrank in meiner Wohnung nicht weil ihm da eine Tür im Weg ist)

Aber, dummerweise:
Ich sehe nur: Mein Programm tut nicht das was es soll. Im Beispiel: Es wird nicht eingekauft. Welche der möglichen Fehlerquellen dafür verantwortlich sind, das sehe ich nicht.

Die Lösung: Ein Protokoll
Also muss ich mein Programm parallel zu seinen eigentlichen Aufgaben protokollieren lassen was es tut. Jeden einzelnen Schritt. Und wo ein Fehler auftritt.
Stehe ich dann am Ende des Tages ohne Einkäufe da, kann ich wenigstens im Protokoll nachlesen, was nicht geklappt hat.
Und vielleicht lese ich dann da:
Kühlschrank lokalisieren: Fehler.
Oder:
Volle Tasche an der Kasse hochnehmen und umhängen: Fehler.
Oder so …

Und deswegen schreiben vermutlich 90% aller Programm ständig Log-Dateien.

Euer Betriebssystem zum Beispiel, das vermerkt alles was passiert.:
10:03: System gestartet.
10:04: Desktop aufgebaut
10:05: Outlook gestartet
10:05: Firefox gestartet
und so weiter …

Praktisch?
Ja. Das ist total praktisch, wenn man mal einen Fehler suchen muss.

Spooky?
Ja. Das ist dann auch echt spooky, wenn zum Beispiel Euer Chef diese Datei mal lesen würde und bemerkt, dass Ihr immer den Rechner anmacht und danach für 15 Minuten nichts passiert. Logisch, wenn Ihr morgens den Rechner anmacht, Euch auch zuerst im Team-Chat einloggt aber dann erstmal Kaffee holt und die Kollegin besucht um Shopping Queen von Gestern Nachmittag durchzuhecheln.

Server-Log-Dateien
Die Log-Dateien, um die es bei der DSGVO geht, die werden auf einem Server erzeugt, wenn dort jemand eine Website abruft. In denen steht dann zum Beispiel:

123.123.123.123
— —
[26/Apr/2000:00:23:48 -0400]
“GET /bilder/sonnenuntergang.jpg HTTP/1.0”
200
62482
“http://www.jawl.net“
“Mozilla/4.05 (Macintosh; I; PPC)”

Der Reihe nach steht da, dass …
– ein Rechner mit der IP-Adresse 123.123.123.123
– ohne Anmeldung und Benutzername (daher zwei Striche)
– am 26.4.2000 um 00:23 mit 4 Stunden Zeitverschiebung
– die Datei sonnenuntergang.jpg im Ordner „bilder“
– erfolgreich (also ohne Fehler, sonst stände da eine anderer Nummerncode) abgefrufen hat
– er bekam 62482 Bytes geliefert
– kam von der Seite „http://jawl.net“
– und benutzte einen ziemlich alten Mac mit einem alten Mozilla

Als Programmierer kann das Lesen dieser Logs für mich nützlich sein. Wenn ich dort zum Beispiel lese, dass jedes Mal, wenn ein Windows-PC versucht, meine Website zu lesen, ein Fehler geloggt wird, dann kann ich mir ziemlich sicher sein, dass ich Mist gemacht habe.
Auch die Info, dass immer nachts zwischen 3:00 und 4:00 Fehler entstehen können hilfreich sein.
Oder die Info, dass eine bestimmte Datei ständig Fehler erzeugt.

Wir wissen also jetzt, warum es Log-Dateien gibt und wofür sie gut sind.

Datenschutz?
Schauen wir uns die Log-Datei nochmal genauer an, dann sehen wir dort zu Beginn die IP-Adresse. Ein Gericht hat mal entschieden, dass IP-Adressen persönliche Daten sind, weil man einer IP-Adresse evtl. eine bestimmte Person zuordnen kann.
Nehmen wir an, das stimmt so, dann wird aus der harmlosen Zeile in der Log-Datei natürlich eine Info über einen bestimmten Menschen.

Und im Gegensatz zu den Protokollen auf unserem PC, die ja: Eben auf unserem PC gespeichert sind und die wir selbst lesen oder löschen können* sind diese Datensätze eben bei jemand anderem gespeichert. Und deswegen so ein großes Thema, wenn es um Datenschutz geht.

*) Wenn wir wüssten, wo sie sind, ist klar.

Dieser Artikel wurde zuerst am 28.5.2018 veröffentlicht auf medium, als ich gerade kein Blog hatte. Aber diesen Artikel wollte ich gern behalten und habe ihn deswegen in ein Archiv alter Artikel aufgenommen.

Danke fürs Teilhaben und Dabei-sein. Wenn Sie wollen:
Hier können Sie mir ’ne Mark in die virtuelle Kaffeekasse werfen,
Oder – wenn Ihnen Geld zu unpersönlich ist – hier ist meine Wishlist. Sie finden dort formschöne und Freude-spendende Geschenke für wenige oder auch sehr viele Euro.

Die Website setzt 1 notwendiges Cookie. Ich nutze Matomo, um zu sehen, welche Artikel Sie interessieren. Matomo ist lokal installiert es werden keine Cookies gesetzt, so dass Sie dort vollkommen anonym bleiben. Externe Dienste werden erst auf Ihre Anforderung genutzt.