Deutschland United States United Kingdom
ContentLion - Open Source CMS

Logging-System
Log

Die Basis eines Logging-System für ContentLion. Über die Plugin_Log_Message-Klasse können neue Einträge erstellt und über den EventManager können diese wieder abgefangen werden.

oder: CMS herunterladen

Für jede Log-Nachricht muss ein neues Plugin_Log_Message erstellt werden. Dem können dann verschiedene Eigenschaften zugewiesen werden, mit dem man den Fehler dann nachvollziehen kann.

Zum Start sind bereits folgende Details vorhanden:

  • Url
  • Stacktrace (Wie er durch den Quellcode zu der Stelle gekommen ist)
  • Post-Parameter
  • Get-Parameter
  • Inhalt der Session
  • Alias der aktuellen Seite
  • Eine Liste mit allen geladenen Klassen
  • Der User Agent(Browser)

Eine Meldung werfen

Ein Beispiel der Benutzung:

<?php
	$message = new Plugin_Log_Message();
	$message->areaType("plugin");
	$message->area("log");
	$message->type("example");
	$message->level(Plugin_Log_Message::LEVEL_FATAL);
	$message->add_detail("plugin_log_detail1","test");
	$message->send();
?>

Mit dem AreaType gibt man an, ob der Fehler von einem Plugin (plugin), Skin (skin) oder von ContentLion selbst(core) geworfen wird. In area steht dann der Bereich. Wenn areaType auf Plugin steht ist es dann der (Daten)name des Plugins.

Mit type wird ein String angegeben, der eindeutig für diesen Typ eines Fehler ist. Das Ganze wird komplett ohne Beschreibung gemacht. Texte können bald in den Language-Files hinterlegt werden. So haben wir direkt übersetzte Fehlermeldungen.

Mit Level wird der Wichtigkeitsgrad der Meldung angegeben. Diese sind als Konstanten in der Klasse Plugin_Log_Message vorhanden. Zur Auswahl stehen:

  • DEBUG Zum Testen während der Entwicklung
  • NOTICE Informationen, die kein Fehler sind. Z.B. Plugin wurde installiert
  • WARNING Ein kleiner Fehler, der die Benutzung nicht großartig gefärdet
  • FATAL Ein Fehler, der die Benutzung an einer Stelle behindert.
  • EMERGENCY Alarmstufe rot,dass kann z.B. bei Datenbankfehlern oder Ähnlichen geworfen werden.

Mit add_detail kann man eigene Parameter anhängen. So kann man die Meldung später besser nachvollziehen. Das ist eine Simple Key, Value Übergabe. Bei dem Key bitte die Namespaces beachten.

Mit send wird die Nachricht abgesendet.

Auf Log-Einträge reagieren

Das Plugin macht natürlich nur Sinn, wenn auch auf das Senden der Nachricht reagiert wird. Das geschieht über unser Event-System. Das Event heißt plugin_log_event. In $args ist das Objekt selbst gespeichert.