Logdatei
Eine Logdatei (auch Protokolldatei, Ereignisprotokolldatei; englisch log file) enthält das automatisch geführte Protokoll aller oder bestimmter Aktionen von Prozessen auf einem Computersystem.
Wichtige Anwendungen finden sich vor allem bei der Prozesskontrolle und Automatisierung. Prinzipiell werden alle Aktionen mitgeschrieben, die für eine spätere Untersuchung (Audit) erforderlich sind oder sein könnten. Der Flugschreiber in Flugzeugen ist ein Beispiel für kontinuierliche Protokollierung, die jedoch selten ausgewertet wird, zum Beispiel nach einem Unfall.
Im Bereich der Datenbanken gibt es ein Transaktionsprotokoll, in der Änderungen an der Datenbank von korrekt abgeschlossenen Transaktionen (per Commit abgeschlossen) festgehalten werden, um im Fall eines Fehlers (z. B. Systemabsturz) den aktuellen Datenbestand wiederherstellen zu können.
Das Wort Logfile wird in Teilen der Blogosphäre zunehmend auch als Begriff für einen Blog-Eintrag genutzt. Mit dieser Bedeutung wurde der Begriff zunächst nur von Log-Files.de (diese Seite ist inzwischen gesperrt) verwendet, inzwischen ist er gerade bei Blogs mit reinem Tagebuch-Charakter beliebt.
Grundlagen
Auf einem PC können Protokolldateien bestimmter Aktionen von einem oder mehreren Nutzern an einem Rechner geschrieben werden, ohne dass diese es bemerken oder ihre Arbeit beeinflusst wird. Wesentlich ist hierzu das Systemlogbuch (unter Linux meist in /var/log/messages, aber auch Windows NT und Nachfolger schreiben entsprechende Einträge in eines oder mehrere Ereignisprotokolle), wenn sie entsprechend konfiguriert werden. Darin können u. a. die Anmeldungen am System protokolliert werden, aber auch andere wichtige Informationen.
Außer dem Betriebssystem selbst schreiben meist Hintergrundprogramme (z. B. ein E-Mail-Server, ein Proxyserver und anderes) in Logdateien, um Aktionsmeldungen, Fehlermeldungen und Hinweise persistent (dauernd) oder temporär verfügbar zu halten. Ähnliches gilt für Installationsprogramme, Firewalls, Virenscanner und dergleichen. Logdateien werden im Idealfall auf einem von der Anwendung getrennten Laufwerk gespeichert, um die I/O-Ressourcen der Anwendung nicht einzuschränken.[1]
Logdateien werden auch von Webservern erstellt, können aber auch außerhalb des Internets bei Untersuchungen der Benutzerfreundlichkeit von Programmen, allgemeinem Nutzerverhalten oder der Fehlersuche in einem System genutzt werden.
Die Logdatei wird bei der Logdateianalyse untersucht.
Aufbau einer Protokollzeile
Prinzipiell enthält eine Protokollzeile in einer Logdatei meist ein Ereignis sowie das dazugehörige Datum und die dazugehörige Uhrzeit als Zeitstempel. Dabei wird die Zeitangabe meist vorangestellt, da es sich bei einer Logdatei um eine chronologische Aufstellung handelt.
Protokolldatei
Bei dem Beispiel handelt es sich um den (in der Mitte gekürzten) Inhalt der Protokolldatei \WINDOWS\system32\wbem\Logs\setup.log
unter Windows XP; links der Zeitstempel, rechts die zu dieser Zeit ausgeführte Aktion:
(Sun Sep 13 23:02:05 2009): Beginning Wbemupgd.dll Registration (Sun Sep 13 23:02:05 2009): Current build of wbemupgd.dll is 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158) (Sun Sep 13 23:02:05 2009): Beginning Core Upgrade (Sun Sep 13 23:02:05 2009): Beginning MOF load (Sun Sep 13 23:02:05 2009): Processing C:\WINDOWS\system32\WBEM\cimwin32.mof (Sun Sep 13 23:02:09 2009): Processing C:\WINDOWS\system32\WBEM\cimwin32.mfl (Sun Sep 13 23:02:12 2009): Processing C:\WINDOWS\system32\WBEM\system.mof (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\evntrprv.mof (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\hnetcfg.mof (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\sr.mof (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\dgnet.mof (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\whqlprov.mof (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\ieinfo5.mof (Sun Sep 13 23:02:17 2009): MOF load completed. (Sun Sep 13 23:02:17 2009): Beginning MOF load (Sun Sep 13 23:02:17 2009): MOF load completed. (Sun Sep 13 23:02:17 2009): Core Upgrade completed. (Sun Sep 13 23:02:17 2009): Wbemupgd.dll Service Security upgrade succeeded. (Sun Sep 13 23:02:17 2009): Beginning WMI(WDM) Namespace Init (Sun Sep 13 23:02:20 2009): WMI(WDM) Namespace Init Completed (Sun Sep 13 23:02:20 2009): ESS enabled (Sun Sep 13 23:02:20 2009): ODBC Driver <system32>\wbemdr32.dll not present (Sun Sep 13 23:02:20 2009): Successfully verified WBEM OBDC adapter (incompatible version removed if it was detected). (Sun Sep 13 23:02:20 2009): Wbemupgd.dll Registration completed. (Sun Sep 13 23:02:20 2009):
Serverlog
Eine typische Webserver-Logdatei („Combined Log Format“) sieht folgendermaßen aus (Auszug mit zwei Einträgen):
183.121.143.32 - - [18/Mar/2003:08:04:22 +0200] "GET /images/logo.jpg HTTP/1.1" 200 512 "http://www.wikipedia.org/" "Mozilla/5.0 (X11; U; Linux i686; de-DE;rv:1.7.5)" 183.121.143.32 - - [18/Mar/2003:08:05:03 +0200] "GET /images/bild.png HTTP/1.1" 200 805 "http://www.google.org/" …
Bedeutung | Wert im Beispiel | Erläuterung |
---|---|---|
IP-Adresse | 183.121.143.32 | IP-Adresse des anfordernden Hosts |
Unbelegt | – | vorgesehen für RFC-1413-Identität, die jedoch standardmäßig (-) nicht ermittelt wird |
Wer | – | Ggf. Nutzername aus einer HTTP-Authentifizierung, sonst „-“ |
Wann | [18/Mar/2003:08:04:22 +0200] | Zeitstempel (Datum, Uhrzeit, Zeitverschiebung) |
Was | "GET /images/logo.jpg HTTP/1.1" | Anforderung, eines Bildes, Übertragungsprotokoll |
Ok | 200 | HTTP-Statuscodes (200=Erfolgreiche Anfrage) |
Wie viel | 512 | Ggf. Menge der gesendeten Daten (Byte), sonst (z. B. bei Umleitungen) „-“ |
Woher | "http://www.wikipedia.org/" | Von welcher Internetseite (URI) wird angefordert |
Womit | "Mozilla/5.0 (X11; U; Linux i686; de-DE; rv:1.7.6)" | Mit welchem Webbrowser/Betriebssystem/Oberfläche |
Bemerkung: Woher? und Womit? entsprechen nicht dem Common Logfile Format.[2] |
Kann man selber auf einem Server mit der eigenen Webpräsenz keine Protokolldateien abrufen, dann ermöglichen verschiedene Webdienste (z. B. Nedstat[3] oder W3 Statistics[4]) das Setzen eines kleinen Zählers auf der eigenen Webpräsenz. Dieser Zähler wird immer wieder beim Abrufen der Seite vom Anbieterserver geladen, wo daraufhin eine Auswertung der Zugriffe mithilfe der Zugriffs-Protokolldatei in Form von Tabellen und Grafiken erstellt wird. Hilfsmittel dabei können Zählpixel und HTTP-Cookies sein, wobei es letztere Internetseitenbetreibern durch das Speichern von eindeutigen Seriennummern ermöglichen, Logdateien über einzelne zugreifende Computer über einen längeren Zeitraum zu führen.
Log-Levels
Da das Loggen aller Programmereignisse die für Logdateien verfügbaren Ressourcen innerhalb kurzer Zeit aufbrauchen würde und die Auffindbarkeit bestimmter Ereignisse erschweren würde, werden verschiedene Dringlichkeitsstufen definiert, welche nach Bedarf ein- und ausgeschaltet werden können.
Übliche Definition von Log-Levels:[5]
- Fatal
- Fehler, welcher zur Terminierung der Anwendung führt.
- Error
- Laufzeitfehler, welcher die Funktion der Anwendung behindert, oder unerwarteter Programmfehler.
- Warning
- Aufruf einer veralteten Schnittstelle, fehlerhafter Aufruf einer Schnittstelle, Benutzerfehler oder ungünstiger Programmzustand.
- Info
- Laufzeitinformationen wie der Start und Stopp der Anwendung, Benutzeranmeldungen und -abmeldungen, sowie durchgeführte Geschäftstransaktionen.
- Debug
- Informationen zum Programmablauf. Wird im Normalfall nur in der Entwicklung oder zur Nachvollziehung eines Fehlers verwendet.
- Trace
- Detaillierte Verfolgung des Programmablaufs, insbesondere zur Nachvollziehung eines Programmierfehlers.
Wichtig ist hierbei, dass in Logdateien und -datenbanken nur Informationen zum Programmablauf und -zustand erhoben werden sollen, jedoch keine Informationen zu den Benutzern des Programms.
Zulässigkeit in Deutschland
Nach § 15 des deutschen Telemediengesetzes dürfen Diensteanbieter personenbezogene Daten eines Nutzers nur erheben und verwenden, soweit dies erforderlich ist, um die Inanspruchnahme von Telemedien zu ermöglichen und abzurechnen. Über das Ende des Nutzungsvorgangs hinaus dürfen Nutzungsdaten nur gespeichert werden, soweit sie für Zwecke der Abrechnung mit dem Nutzer erforderlich sind. Auf dieser Grundlage hat das Amtsgericht Berlin 2007 entschieden,[6] dass die Protokollierung der IP-Adressen der Benutzer eines öffentlich zugänglichen Internetportals ohne deren Einwilligung unzulässig ist.
Logger
Logger sind Softwarekomponenten für Computerprogramme, welche in eine Logdatei schreiben oder diese auslesen.
- Awesome .NET Logging. In: Github. Abgerufen am 6. März 2017 (Liste von .NET Logging-Libraries).
- Enterprise Library. In: CodePlex, patterns & practices. Microsoft, abgerufen am 11. April 2013 (englisch).
- .NET Logging Framework. The Object Guy, abgerufen am 11. April 2013 (englisch).
- SmartInspect. GurockSoftware, abgerufen am 11. April 2013 (englisch).
- Log4Delphi. Open Source Projekt, abgerufen am 19. September 2013 (englisch).
- nxLogging
Abgrenzung zu anderen Technologien
Im Rahmen des Application Lifecycle Management werden, zusätzlich zu dezentralen Logdateien, auch zentralisierte Logging-Datenbanken eingesetzt, um eine zentrale Auswertung von Programmfehlern und -informationen zu ermöglichen. Derartige Datenbanken können beispielsweise über ein Webservice oder mittels Log-Scraping befüllt werden.
Für eine Echtzeitauswertung sind Logdateien nicht geeignet. Hierfür kommen stattdessen Monitoring-Mechanismen zum Einsatz, etwa Performance Counter und Event Tracing for Windows (ETW) auf Windows-Systemen oder collectd (system statistics collection daemon) unter Linux-Systemen.
Eine weitere Technologie sind Operations-Datenbanken, welche unter anderem eine Auswertung des Zustands von Geschäftsprozessen ermöglicht.
Literatur
- Ralph Kimball, Margy Ross: The Data Webhouse Toolkit. 2. Auflage. John Wiley & Sons, New York 2002, ISBN 0-471-20024-7.
- Brij Masand: Web Usage Analysis and User Profiling. Springer, Berlin 2000, ISBN 3-540-67818-2.
- C. Lutzky, M. H. Teichmann: Logfiles in der Marktforschung: Gestaltungsoptionen für Analysezwecke. In: Jahrbuch der Absatz- und Verbrauchsforschung. 2002, S. 295–317.
Weblinks
- Sichere Log-Dateien auf Grundlage kryptographisch verketteter Einträge (PDF, 515 KiB)
- Entwicklung und Test einer logfilebasierten Metrik zur Analyse von Website Entries am Beispiel einer akademischen Universitäts-Website. Magisterarbeit zum Thema Logdateianalyse
- Pantheios – Datenprotokollierungs-Bibliothek für C++
- Enotare – Datenprotokollierungs-Bibliothek(+Viewer) für C# (kostenlos)
Einzelnachweise
- Michael T. Nygard: Release It! Design and Deploy Production-Ready Software. O’Reilly, 2007, ISBN 978-0-9787392-1-8 (englisch, 326 S.).
- w3.org
- Nedstat - Web analytics (Memento des Originals vom 24. Oktober 2005 im Internet Archive) Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- W3 Statistics (zuvor W3 Research) :: intelligente Webstatistik und Web-Controlling
- Log4j Log Level. Apache, abgerufen am 6. März 2017 (englisch).
- Urteil: Vorratsspeicherung von Kommunikationsspuren verboten. In: Daten-Speicherung.de – minimum data, maximum privacy. 1. Oktober 2007, abgerufen am 3. Mai 2016.