Sonntag, 23. August 2009

Eine Logdatei mit VBScript

Wer Vorgänge mit Skripten automatisiert, muß nachträglich feststellen zu können was passiert oder auch nicht passiert ist. Idealerweise schreiben wir also Informationen in eine Textdatei, während das Programm läuft.
Wir definieren im Kopf des Skripts den Ort der Logdatei und legen fest ob aktuell eine Protokollierung stattfinden soll. Natürlich können wir auch unterschiedliche Logdateien definieren bzw. beim Funktionsaufruf übergeben.


Der Aufruf erfolgt über einen "Call" unserer Funktion. Es spielt dabei keine Rolle ob wir die notwendigen Informationen direkt in den Funktionsaufruf oder mit Hilfe von Variabln übergeben.

Die Funktion selbst führt nur dann eine Aktion aus, wenn die Variable "Mitloggen" auf '1' gesetzt ist. Die angegebene Textdatei wird zum Schreiben geöffnet, der Text wird angehängt [Parameter '8', '1' zum ausschließlichen Lesen, '2' zum Überschreiben]. Die Angabe 'TRUE' legt fest, dass die Datei erzeugt wird wenn sie noch nicht existiert.
Die Funktion schreibt bei jedem Aufruf die aktuelle Zeit in die Datei und den eigentlichen Inhalt. Danach räumen wir noch etwas auf...

'-----------------------------------------------Variablen setzen
 Logdatei    = "d:\ueberwachung.txt"
 Mitloggen   = 1
 
'-----------------------------------------------Ausgabe
 Bericht = "Hallo Welt..."
 Call logge(Logdatei,Bericht)

'-----------------------------------------------Erzeugen der LogDatei
 Function Logge (Datei,LogTxt)

  IF Mitloggen=1 Then
      Set fso     = WScript.CreateObject("Scripting.FileSystemObject")
      Set FileOut = fso.OpenTextFile(Datei,8,TRUE)

      FileOut.WriteLine (now())
      FileOut.WriteLine (LogTxt)
      FileOut.Close

      Set FileOut = Nothing : Set fso = Nothing
  END IF

 End Function 
Sicherlich ist es ressourcenschonender alle Informationen in einer Variable zu sammeln und erst am Ende des Programms in eine Textdatei zu schreiben.
Bricht das Programm aber während der Ausführung durch einen Fehler ab, erhalten wir keine Informationen. Deshalb kann ein Wegschreiben der Informationen während der Ausführung durchaus sinnvoll sein.

Keine Kommentare:

Kommentar veröffentlichen