Dokumentation
UC_GetLogMessageStatistics
array UC_GetLogMessageStatistics (int $InstanzID)
Parameterliste
| InstanzID | ID zum Util Control |
Rückgabewert
Ein Array mit folgenden key => value Paaren:
| Index | Typ | Beschreibung |
|---|---|---|
| MessageCustomCount | integer | Anzahl der Meldungen vom Typ KL_CUSTOM (z.B. über IPS_LogMessage) |
| MessageDefaultCount | integer | Anzahl der Meldungen vom Typ KL_MESSAGE |
| MessageErrorCount | integer | Anzahl der Meldungen vom Typ KL_ERROR |
| MessageNotifyCount | integer | Anzahl der Meldungen vom Typ KL_NOTIFY |
| MessageSuccessCount | integer | Anzahl der Meldungen vom Typ KL_SUCCESS |
| MessageTimeStamp | integer | Laufende Nummer der zuletzt vom Util Control verarbeiteten Nachricht (beliebigen Typs). Kein Zeitstempel! |
| MessageWarningCount | integer | Anzahl der Meldungen vom Typ KL_WARNING |
| ResetTimeStamp | integer | Unix Zeitstempel, ab dem gezählt wird (Start von IP-Symcon bzw. letzter Aufruf von UC_ResetLogMessageStatistics) |
Beschreibung
Die Funktion liefert, wie viele Meldungen seit ResetTimeStamp je Meldungstyp ins Log geschrieben wurden. Das Util Control empfängt dazu alle Nachrichten des Kernels und zählt die Log-Meldungen. Die Zähler lassen sich z.B. regelmäßig abfragen, um festzustellen, ob neue Fehler oder Warnungen aufgetreten sind. Die letzten Meldungen selbst liefert UC_GetLastLogMessages, zurückgesetzt werden die Zähler mit UC_ResetLogMessageStatistics.
Erfasst werden nur Meldungen, die entstehen, während IP-Symcon betriebsbereit ist (nicht während des Startens und Herunterfahrens). Debug-Meldungen (KL_DEBUG) werden nicht weitergereicht und deshalb nie erfasst, ebenso wenig Meldungen, die über den Spezialschalter "LogfileFilter" ausgefiltert werden.
MessageTimeStamp ist trotz des Namens kein Zeitstempel. Der Kernel nummeriert alle Nachrichten, die er verteilt, seit dem Start fortlaufend durch (1, 2, 3, ...). MessageTimeStamp ist die Nummer der letzten Nachricht, die das Util Control verarbeitet hat, und ändert sich mit jeder Nachricht, nicht nur mit Log-Meldungen. Warten keine Nachrichten auf ihre Verarbeitung, entspricht der Wert ungefähr MessageCounter aus UC_GetKernelStatistics. Er wird von UC_ResetLogMessageStatistics nicht zurückgesetzt.
Die ID der Util Control Instanz liefert z.B. IPS_GetInstanceListByModuleID mit der Modul-GUID {B69010EA-96D5-46DF-B885-24821B8C8DBD}. Existiert InstanzID nicht, schlägt die Funktion mit "Instance #... does not exist" fehl, gehört die Instanz zu einem anderen Modul, mit "Instance does not implement this function".
Beispiel
// ID der Util Control Instanz ermitteln
$id = IPS_GetInstanceListByModuleID('{B69010EA-96D5-46DF-B885-24821B8C8DBD}')[0];
print_r(UC_GetLogMessageStatistics($id));
/* liefert z.B.:
Array
(
[MessageCustomCount] => 0
[MessageDefaultCount] => 0
[MessageErrorCount] => 2
[MessageNotifyCount] => 0
[MessageSuccessCount] => 1
[MessageTimeStamp] => 184
[MessageWarningCount] => 1
[ResetTimeStamp] => 1700000000
)
*/