Admin-Dokumentation
- Erste Schritte und Grundkonfiguration
- Rund um Benutzer
- Rund um Veranstaltungen und Einrichtungen
- Rund um den OER Campus
- Plugins zu Stud.IP
- Sonstiges
< Einbinden von LTI-Tools | Admin-Dokumentation | Was tun im Notfall? >
Auf dieser Seite... (ausblenden)
Seit Stud.IP Version 1.3 gibt es einen integrierten Mechanismus, bestimmte Nutzeraktionen zu protokollieren. Dabei gelten folgende Grundsätze:
Die Logging-Einträge sind für Roots unter "Globale Einstellungen -> Log" zugänglich.
Bei der Suche kann nach 2 Kriterien gefiltert werden:
Ein Klick auf "Anzeigen" löst die Suche mit den eingestellten Filter- und Darstellungsoptionen (kompakt oder ausführlich) aus.
Nach Auswahl eines Objekttyps kann das Eingabefeld neben der Objekttypauswahl zur Suche eines Objekts verwendt werden. Nach Klick auf "Anzeigen" erscheint dann zunächst eine Auswahlliste passender Objekte, er der nächste Klick auf Anzeigen löst tatsächlich die Suche aus.
Die angezeigten Events sind chronologisch rückläufig sortiert, d.h. neuere Events stehen weiter oben. Bei mehr als 50 gefundenen Events werden die Ergebnisse paginiert, so dass jeweils 50 Events pro Seite angezeigt werden.
Veranstaltungen und Einrichtungen sind alle Events zugeordnet, die sich auf Ihre Grunddaten, auf Termin- und Ortsangaben, Zugangsberechtigungen und vor allem auch Personenzuordnungen beziehen. Sie können unter den Log-Events der Veranstaltung als z.B. herausfinden (entsprechende Konfiguration vorausgesetzt - s.u.), von wem und wann Zugangsberechtigungen geändert wurden, welche Personen sich selbst ein- und ausgetragen haben oder von wem und wann eine Veranstaltung angelegt wurde.
Die suche nach Personen-Events ermöglich kein umfassendes Tracking der Aktivitäten einer Person. Vielmehr sind vor allem Informationen über Veränderungen an den Basisdaten eines Accounts sowie Informationen über Einrichtungs- und Veranstaltungszuordnung zugänglich.
Ressourcen-Events sind vor allem dann relevant, wenn die Ressourcen- bzw. Raumverwaltung intensiv genutzt wird. Wann und von wem Buchungen vorgenommen oder aufgehoben wurden, lässt sich mit der Log-Suche nachvollziehen.
Der Untermenupunkt "Einstellungen" führt zu einer Übersicht der vorhandenen Log-Aktionen. An dieser Stelle können Sie sehen:
Der Edit-Knopf ganz rechts ermöglicht es, Beschreibung, Template, Aktivität und Ablaufdauer zu verändern. Hinweise:
Es gibt zwei neue Tabellen:
1. log_actions
Entählt Beschreibungen und Daten von Aktionen, wie z.B. "Anlegen einer neuen Veranstaltung".
CREATE TABLE `log_actions` ( `action_id` INT( 10 ) NOT NULL AUTO_INCREMENT , // ID `name` VARCHAR( 128 ) NOT NULL , // Bezeichner, wird auch im Code verwendet `description` VARCHAR(64), // Kurzbeschreibung für Suchinterface `info_template` TEXT, // Template für Klartextausgabe `active` TINYINT( 1 ) DEFAULT '1' NOT NULL , // derzeit aktiv? `expires` INT( 20 ) , // Anzahl Sekunden bis automatischer Löschung PRIMARY KEY ( `action_id` ) );
Ein Eintrag sieht dann z.B. so aus:
action_id | 3 |
name | SEM_VISIBLE |
description | Veranstaltung sichtbar schalten |
info_template | sem(%affected) sichtbar. |
active | 1 |
expires | NULL |
Der Info-Template-String kann ein paar Platzhalter enthalten, insgesamt wird daraus bei der Anzeige des Logs der Text generiert, der oben im Scrrenshot zu sehen ist.
expires kann genutzt werden, um Einträge nach einer bestimmten Zeit automatisch löschen zu lassen, z.B. aus datenschutzgründen oder zum Platz sparen. Über ein spezielles Interface (noch nich implementiert) kann das Logging bestimmter Aktionen einfach ein- und ausgeschaltet werden.
Die einzelnen Events werden in einer zweiten Tabelle gespeichert:
2. log_events
CREATE TABLE `log_events` ( `event_id` INT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT , // ID `timestamp` INT( 20 ) NOT NULL , // Unix-Timestamp `user_id` VARCHAR( 32 ) NOT NULL , // Handelnder Nutzer (Subjekt) `action_id` INT( 10 ) NOT NULL , // Handlung (Verb) `affected_range_id` VARCHAR( 32 ) , // primär betroffenes Objekt (direktes Objekt) `coaffected_range_id` VARCHAR( 32 ) , // sekundär betroffenes Objekt (indirektes Objekt) `info` TEXT, // zusätzlicher Informationstext `dbg_info` TEXT, // zusätzliche technische Informationen PRIMARY KEY ( `event_id` ) );
info_templates können folgende Platzhalter beinhalten:
Mal ein Beispiel:
Es gibt ein Event mit folgenden Werten:
event_id = ... timestamp = 11... user_id = User-ID von Tobias action_id = Action-ID von "RES_ASSIGN" affected_range_id = Seminar-ID von "Strafrecht I" coaffected_range_id = Ressourcen-ID von "Stadthalle" info = "Montags, 10-12 Uhr" dbg_info = "...egal..."
Das info_template sieht für das Event RES_ASSIGN so aus: "%user bucht %res(%coaffected), %info für %sem(%affected)"
Das führt dann zu: "Tobias bucht Stadthalle, Montags, 10-12 Uhr für Strafrecht I."
D.h. das info_template kann verschiedene Platzhalter enthalten, die dann mit Text (und Links) aus den Werten aus log_events ersetzt werden. Info enthält nur zusätzliche Infos, die nicht in affected oder coaffected abgelegt werden können. Nach Werten in info kann man dann natürlich auch nicht Suchen oder sortieren. Text und Verlinkung werden dann erzeugt, wenn Root sich über das Anzeigeinterface Infos anzeigen lässt.
Durch den gewählten Ansatz leistet das Logging zweierlei:
Im Code müssen die Stellen identifiziert werden, an denen eine Aktion ausgelöst wird und meist eine Zeile wie:
log_event("SEM_CREATE",$sem_id);
eingefügt werden. Sind mehr als zwei Objekte betroffen, kommen die Zusatzinformationen (nicht durchsuchbar) in den Infotext, z.B. die Angabe über die gebuchte Zeit beim Auflösen einer Raumanfrage. In die Debug-Infos können z.B. Details über die Stelle im Code eingebaut werden, von der aus die Aktion ausgeführt wurde, komplette Queries abegelegt werden etc.