Veröffentlichungsdatum: 19. Februar 2020
Änderungsdatum: 19. September 2024
wconf protokoll protocol seitenaufruf seitenzugriffe monitoring server-monitoring servermonitoring datenschutz dsgvo
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.
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:
// ...
// 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 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.
<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.
// ...
// 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));
}
// ...
Die Protokollierung kann deaktiviert werden, wenn diese in der Projektkonfiguration auf Nein (no) gesetzt werden.
Ab CMS-Version 19 werden zudem auch keine actions-Logs mehr geschrieben, wenn log_requests und log_requests_wa auf no stehen.
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.
<wConf version="16"> ... <logging> <requests limitDays="30"/> </logging> ... </wConf>
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.
...
// 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){
...
...
Sorgen Sie dafür, dass die Protokolldateien vor Fremdzugriff
geschützt werden! Ein Direktaufruf kann z.B. über eine .htaccess Datei
unterbunden werden.