Protokollieren seltener Ereignisse
Manchmal ist es notwendig, nach einer Unterbrechung zu suchen, die nur ein Mal pro Woche oder noch seltener auftritt. Für ein besseres Verständnis der Unterbrechung, wäre es von Vorteil, ein Protokoll zu haben, dass aufzeigt, was kurz vor dem Auftreten der Unterbrechung in der Anwendung geschehen ist.
Da der Application Logger die Aufzeichnungen in einem Ringpuffer speichert und viele Logger-Meldungen versendet werden können, bleibt nach dem Ereignis nur eine kleine Zeitspanne. Nach dieser Zeitspanne werden die protokollierten Meldungen im Ringpuffer überschrieben.
Um ein Überschreiben des Ringpuffers zu vermeiden, kann die Protokollierung mit der Methode DisableLogger des Funktionsbausteins FB_ApplicationLoggerHandler deaktiviert werden.
Um mit diesem Trigger-Mechanismus zu arbeiten, muss das Ereignis, das von Interesse ist, im Projekt ermittelt werden. Dies kann durch Hinzufügen einer POU vom Typ Programm in das Projekt erreicht werden, die den Status des Projekts in regelmäßigen Abständen überprüft. Das Programm arbeitet parallel zum überwachten Projekt. Das Projekt sendet die Logger-Meldungen wie gewohnt an den Application Logger. Im zusätzlichen Programm ist eine Instanz des Funktionsbausteins FB_ApplicationLoggerHandler implementiert. Sobald das Programm das Ereignis erkennt, wird einmalig die Methode DisableLogger des Funktionsbausteins FB_ApplicationLoggerHandler aufgerufen.
Wenn ein Zeitraum nach dem Ereignis zusätzlich protokolliert werden soll, muss der Aufruf der Methode beispielsweise durch Einsatz des Funktionsbausteins TON verzögert werden.