Das Perl-Programm logs.pl
(Quelltext) wertet eine oder mehrere Log-Dateien aus. Das Ergebnis der Auswertung sind drei XML-Dateien:
open.xml
Am Ende der Auswertung sind einige Besuche möglicherweise noch nicht abgeschlossen, weil der letzte Zugriff der Besuchs weniger als fünf Minuten vor dem letzten protokollierten Zugriff erfolgte. Ich zähle einen Besuch dann als abgeschlossen, wenn fünf Minuten lang keine Anfrage erfolgte. Die Daten open.xml
enthält Daten der noch offenen Besuche. Sie wird zu Beginn der nächsten Auswertung gelesen. Dann kann sich herausstellen, dass ein zunächst offener Besuch gar nicht zählt, weil er keine Bildergeschichte oder kein Bild angefordert hat.
detailed.xml
Detaillierte Daten zu den abgeschlossenen Besuchen
finished.xml
Zusammengefasste Daten der abgeschlossenen Besuche (Zahlen der Anfragen der Bildergeschichten, Bilder und Sprachen)
Das Programm sums.pl
(Quelltext) fasst die Daten aus der Datei finished.xml
mit früheren Besuchen aus der Datei visits.xml
zur neuen Datei visits.xml
zusammen. Diese Datei ist die Grundlage der Anzeige der beliebtesten Bildergeschichten und Bilder in der Website.
Die XML-Dateien nutzen den Namensraum http://herbaer.de/xmlns/20170605/visits/
. Alte Dateien werden nicht automatisch überschrieben. Der Dateiname jeder Datei enthält einen Zeitstempel. Die Verzeichniseinträge ohne Zeitstempel sind symbolische Verweise auf die neuesten Dateien.
Ausgewertete Logdateien werden aus dem Unterverzeichnis newlogs
in das Unterverzeichnis evallogs
verschoben.
Natürlich sollen nicht alle Einzelheiten im Web präsentiert werden. Die Transformation visits_reduce.xslt
wählt aus der Datei visits.xml
die zu präsentierenden Daten aus. Das Ergebnis verwendet Elementnamen aus nur einem Zeichen: http://herbaer.de/xmlns/20170613/vis/
. Die anschließende Transformation vis_add_details.xslt
(Text) fügt zu Bildergeschichten das beliebteste Bild hinzu und verwendet dazu auch die vorab erstellten Bildbewertungsdateien. Zu Bildern werden die Fragment-Bezeichner hinzugefügt, die zur Anzeige des Bildes innerhalb der Bildergeschichte führen.
So läuft die Auswertung neuer Log-Dateien. Der „Zeitstempel” ZEITNEU
ist für alle Dateien derselbe, während die Zeitstempel ZEITALT
verschieden sein können.
open.xml.ZEITALT <- open.xml --| (visits_in.xslt
) newlogs/access_log_JJJJ-MM-TT.gz --|logs.pl
(Quelltext) |-- open.xml.ZEITNEU (visits_logs.xslt
) -- |-- detailed.xml.ZEITNEU | |-- finished.xml.ZEITNEU | newlogs/access_log_JJJJ-MM-TT.gz --> evallogs/access_log_JJJJ-MM-TT.gz open.xml.ZEITNEU <- open.xml finished.xml.ZEITNEU <- finished.xml --| (visits_num.xslt
) visits.xml.ZEITALT <- visits.xml --| (visits_num.xslt
)sums.pl
(Quelltext) |-- visits.xml.ZEITNEU visits.xml.ZEITNEU <- visits.xml visits.xml --|visits_reduce.xslt
| | |-- <Bildergeschichte[STORYID]> | |-- <Bildbewertung[STORYID]>vis_add_details.xslt
(Text) --> DOCROOT/f/f.xml