Eventlogger Update
Ich hatte ja hier mal einen Eventlogger geschrieben. Diesen habe ich jetzt erweitert. Es werden folgende Eigenschaften gespeichert:
- Uhrzeit
- Eventname
- Eventparameter (falls vorhanden)
Es ist auch eine Blacklist vorhanden, da diese Events immer gefeuert werden bzw. wenn EPLAN im Idle-Modus ist.
using System; using System.Collections.Generic; using System.IO; using Eplan.EplApi.ApplicationFramework; using Eplan.EplApi.Scripting; using EventHandler = Eplan.EplApi.ApplicationFramework.EventHandler; public class EventLogger { EventHandler eventHandler = new EventHandler(); [DeclareRegister] public void Register() { eventHandler.SetEvent("*"); EventHandlerNameFunction eventHandlerNameFunction = Event; eventHandler.EplanNameEvent += eventHandlerNameFunction; } [DeclareUnregister] public void UnRegister() { eventHandler.Dispose(); } private void Event(IEventParameter eventParameter, string eventName) { // Check Blacklist List<string> blackList = new List<string> { "onIdle.Bool.App", "onLastIdle.Bool.App", "onTimer.UInt.App" }; if (blackList.Contains(eventName)) { return; } // Get Parameter string parameter; try { EventParameterString eventParameterString = new EventParameterString(eventParameter); parameter = eventParameterString.String; } catch { parameter = string.Empty; } // Write log FileInfo fileInfo = new FileInfo(@"C:\Test\Events.txt"); using (StreamWriter streamWriter = fileInfo.AppendText()) { string line = string.Format("{1}{0}{2}{0}{3}", "\t", DateTime.Now.ToString("HH:mm:ss"), eventName, parameter); streamWriter.WriteLine(line); } } }