Seitenzugriffe protokollieren

Nutzbar ab: Version 006.001.081.000

Die Seitenaufrufe Ihres Projektes können Sie in einer täglichen Protokolldatei ablegen.

Die BASE Projektbasis bietet Ihnen die Möglichkeit, alle Zugriffe auf Seiten in einer täglichen Protokolldatei zu protokollieren (Server-Monitoring). In aktuellen BASE-Projekten ist diese Funktion bereits am Ende der Pre-Datei des globalen Projektes enthalten und in der Projektkonfiguration als Variable gesetzt.

Das Schreiben der Seitenzugriffe in tägliche Protokolldateien erfordert keine spezielle Lizenz. Lediglich zum Aufruf des Server-Monitoring über die entsprechende Maske ist bei einem Lizenzpaket kleiner Core Business (z.B. Core Classic oder Core Toolkit) das Zusatzmodul "Server-Monitoring" erforderlich.
Gleiches gilt für die Statistik, welche sich aus den Logs des Server-Monitoring generiert.

Protokollierung aktivieren

Die Protokollierung aktivieren Sie - wie im Queltextbeispiel weiter unten ersichtlich - durch Setzen der PHP-Framework Funktion wPageCur::logRequest. Sofern der Eintrag noch nicht vorhanden ist, setzen Sie diesen entsprechend. Achten Sie darauf, dass Sie für diese Funktion eine Weblication® CMS Version ab 006.001.081.000 im Einsatz haben!

Die Informationen der Seitenzugriffe werden im globalen Projekt im logs-Verzeichnis abgelegt. Für jeden Tag wird eine separate Protokolldatei nach folgendem Muster angelegt:

/[IHR-LAYOUT-PROJEKT]/wGlobal/logs/requests/day-yyyy-mm-dd.log

Die Protokollierung enthält folgender Informationen, die pro Zugriff in einer Zeile mit Semikolon getrennt geschrieben werden:


Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/scripts/pre.php

// ...
// Protokolliert alle Zugriffe auf Seiten in einer täglichen Protokolldatei
if(wVariables::getValue('log_requests', '/[IHR-LAYOUT-PROJEKT]') == 'yes'){
wPageCur::logRequest(array('projectPath' => wProjectCur::getPathGlobal(), 'anonymize' => 1));
}
// ...

Sofern der Eintrag der Variablen in der Projektkonfiguration (log_requests) noch nicht vorhanden ist, tragen Sie diesen manuell nach (siehe nachfolgendes Quelltextbeispiel).
Ab CMS-Version 13.x ist es übrigens möglich, auch Assets-Dateien bei der Protokollierung zu berücksichtigen. Hierzu reicht die Erweiterung der Projektkonfiguration um die Variable log_requests_assets, welche auf den Wert yes gesetzt werden muss. Erfasst werden alle Dateien, welche über die .htaccess Regel auf die accessDocument.php (der Software) umgeleitet werden.

Beispiel: Auszug aus /[IHR-LAYOUT-PROJEKT]/wGlobal/content/default.wVariables.php

  <variable description="Seitenzugriffe protokollieren" key="log_requests" type="char.yesno">yes</variable>
  <!-- Falls auch Asset-Dateien protokolliert werden sollen (Wert auf yes setzen)-->
  <variable description="Zugriffe auf Dokumente protokollieren" key="log_requests_assets" type="char.yesno">no</variable>

Nachfolgend die empfohlene Definition für Multi-Projekt Umsetzungen, um die Logs jeweils im zugehörigen globalen Projekt (z.B. /projekt1-wGlobal) abzulegen.

Beispiel: Auszug aus /[IHR-INHALTS-PROJEKT]/wGlobal/scripts/pre.php einer Multi-Projekt Umsetzung

// ...
// Protokolliert alle Zugriffe auf Seiten in einer täglichen Protokolldatei
if(wVariables::getValue('log_requests', wProjectCur::getPathLayout()) == 'yes'){
wPageCur::logRequest(array('projectPath' => wProjectCur::getPathGlobal(), 'anonymize' => 1));
}
// ...

Limit für Protokolldateien setzen (Logs bereinigen/löschen)

Ab Weblication® CMS Version 007.001.205.000 können Sie manuell einstellen, dass die Protokolldateien für das Monitoring nach der angegebenen Anzahl an Tagen gelöscht werden. Ab CMS-Version 10 finden Sie die Einstellung auch über die Maske der Systemeinstellungen (Allgemein).
Das Löschen erfolgt durch Aufruf des Server-Monitorings. Alternativ können Sie die Logs auch über die Framework-Funktion wProject::clearLogs() bereinigen (z.B. wenn das Server-Monitoring nicht über Lizenz freigeschaltet ist).

Für Installationen älter CMS 10.x:
Setzen Sie hierzu den Wert des limitDays-Attributes innerhalb des requests-Tags (zu logging) auf den gewünschten Wert, z.B. "30" (für 30 Tage).
Sofern das Tag in der default.wConf.php noch nicht vorhanden sein sollte, setzen Sie dies XML-Konform. 

Beispiel: Auszug aus der /weblication/grid5/conf/default.wConf.php zum Setzen des Limits

<wConf version="16">
  ...
  <logging>
    <requests limitDays="30"/>
  </logging>
  ...
</wConf>

Bestimmte Seitenaufrufe von Protokollierung auschliessen

Sollen bestimmte Seitenaufrufe im Server-Monitoring und somit in der Statistik nicht erscheinen, können Sie diese über eine Abfrage in der pre.php des globalen Projektes ausschliessen.

Dies kann z.B. bei Nutzung der Megadropdown-Navigation, welche per Mouseover geladen wird, gewünscht sein.

Beispiel: Auszug aus /[IHR-INHALTS-PROJEKT]/wGlobal/scripts/pre.php - Ausschliessen von dropdown-Pfaden

...
// Protokolliert alle Zugriffe auf Seiten in einer täglichen Protokolldatei
// Aufrufe der Megadropdown-Navigation ( /dropdown/ im Pfad) ausschliessen:
$queryExcluded = preg_match('/\/dropdown\//', $_SERVER['REQUEST_URI']);
if(
wVariables::getValue('log_requests', $wPathLayout) == 'yes' && $queryExcluded !== 1){
...
...

Hinweise

Sorgen Sie dafür, dass die Protokolldateien vor Fremdzugriff geschützt werden! Ein Direktaufruf kann z.B. über eine .htaccess Datei unterbunden werden.