Logdatei

Aufzeichnung bestimmter Ausgaben von laufenden Computerprogrammen, i.d.R. zu Diagnosezwecken

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.

Beispiel für eine Logdatei – hier die der Aktivität des Keyloggers Wolfeye

Grundlagen

Bearbeiten

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

Bearbeiten

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

Bearbeiten

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

Bearbeiten

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/"
…
Erklärung der ersten Zeile des Beispieleintrages
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

Bearbeiten

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

Bearbeiten

Nach § 15[Anbieter/Datenbank unbekannt] 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 sind Softwarekomponenten für Computerprogramme, welche in eine Logdatei schreiben oder diese auslesen.

Java

.NET

Delphi

Abgrenzung zu anderen Technologien

Bearbeiten

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.

Siehe auch

Bearbeiten

Literatur

Bearbeiten
  • 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.
Bearbeiten

Einzelnachweise

Bearbeiten
  1. Michael T. Nygard: Release It! Design and Deploy Production-Ready Software. O’Reilly, 2007, ISBN 978-0-9787392-1-8 (englisch, 326 S.).
  2. w3.org
  3. 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.@1@2Vorlage:Webachiv/IABot/www.nedstat.com
  4. W3 Statistics (zuvor W3 Research) :: intelligente Webstatistik und Web-Controlling
  5. Log4j Log Level. Apache, abgerufen am 6. März 2017 (englisch).
  6. Urteil: Vorratsspeicherung von Kommunikationsspuren verboten. In: Daten-Speicherung.de – minimum data, maximum privacy. 1. Oktober 2007, abgerufen am 3. Mai 2016.