Loggning av fel och kommunikation

All loggning sker för närvarande till filen JDrouter.log, och den ligger i samma katalog som programmet.
Man kan ställa in olika nivåer på loggningen, detta kan göras i INI filen eller för tillfälliga inställningar via Telnet.
Nedan visas kommandona för Telnet.

Dels ställer man globalt in loggning till en av tre nivåer:

Sedan ställer man för varje kanal (Channel) in loggning till en av tre nivåer:

OBS att loggfilen kan bli väldigt stor. Det finns för närvarande ingen begränsning av hur stor den kan bli. Därför måste du själv rensa den!

Exempel på data i logfil

2009-10-11 19:10:22.843 Ch03B Can not Read: Remote Client has gracefully Closed!
2009-10-11 19:10:23.209 Ch01A  07 40 47 FF
2009-10-11 19:10:23.282 Ch01B  07 C0 02 00 C5 FF

Först kommer en tidstämpling sedan vilken Channel som avses samt även vilken sida (A eller B). Resten är antingen ett (fel)meddelande eller data som lästs in på porten.

Första lograden i exemplet visar att servern som kanal 3:s B-sida anslutit till, har stängts ner. Andra raden i exemplet visar att fyra byte inkommit på kanal 1 A-sida. Att dessa byte sedan skrivs ut på B-sidan redovisas inte i loggfilen. Men om t.ex. B-sidan inte är öppen, så kommer ett felmeddelande om detta.

Vid fel på en port vid läsning, så redovisas felet bara första gången det kommer. Detta för att inte fylla loggfilen för snabbt. Blir det ett annat fel, eller om felet återgår så skrivs detta naturligtvis ut.

Observera att det är två blanktecken mellan Channel strängen och första byten i datat. På detta sätt kan man vara säker på att data är just data och inte ett meddelande som på Första lograden. Detta är nödvändigt eftersom det annars kan bli missförstånd om man loggar med ASCII formatet.

Vid allvarliga fel på en port

Programmet försöker att återöppna en port som har fått ett allvarligt fel. Denna återöppning sker dock med ökande tidsintervall. Första försöket sker efter en sekund, nästa efter två sekunder. Och på detta sätt fördubblas tiden, tills man når ca 17 minuter, sedan sker fortlöpande öppningsförsök med 17 minuter intervall.

Att en TCP server går ner, som JDrouter försöker ansluta till, innebär inte att alla dessa återöppningstider behöver användas. Detta eftersom att "felet" med att en Connect inte kan slutföras omedelbart, inte är ett allvarligt fel. Vill man testa återöppningsfunktionen så skapar man enklast en icke existerande port som t.ex. COM45, och studerar sedan loggfilen.