Gut bewährt hat sich folgendes:
Innerhalb des Wizard gibt es ein modul/sub, das kriegt die IP-Message, wenn im Target diese Pseudo-Device-ID steht.
Wenn nun eine Log/Protfile offen ist, schreibt er einen Record
11:12:01;PID;SRC;"Text aus Ip-MsgVAL"
11:12:01;PID;SRC;"Text aus Ip-MsgVAL"
etc.
Dabei ist
Uhrzeit (logo)
PID die prozess id, von dem die Message kommt
SRC die Komponente, von der die Message ist
Text und einfach der Text aus MsgVal (der ist dann immer ein Ascii-String)
Semikolon dazwischen, damit man die File auch leicht mit Excel einlesen kann. (sortieren, selektieren, drucken, etc) (+graphische Auswertung!)
Anm:
SRC sollte die "facility" bezeichnen (code) die die Message geschrieben hat. also z.B.
PROC allgemeine Programm komponenten
FORM was mit der "Form" zu tun hat
IP was mit der low-level kommunikation zu tun hat
KEY-VAL-Interpreter ("syntax-error")
LEV0 Level-0
ROUT Level-1 Router
(Das soll vermeiden, daß bei jedem Prot Text die hälfte als beschreibung dient, an welcher stelle ein Fehler/Event aufgetreten ist)
z.B.
Code:00:01:40 01EC PROC "RnWizard Startup" 00:01:41 01EC PROC "Taskbar1.exe submitted" 00:01:42 01EF PROC "Taskbar1.exe started" 00:01:43 01EC IP "Taskbar1.exe connected" 00:01:50 01EC KYVAL "CMD-Syntax-error" 00:02:21 01EC LEV0 "COM2 opened" 00:02:22 01EC LEV1 "RNBFRA online" ......
Für den User ist das Log-Schreiben dann eine (generic*g*) function, die irgendwo aufgerufen wird.
WriteProt("SRC","Text")
Lesezeichen