Log-Datei erzeugen


Mitunter ist es bei der Entwicklung von Skripten nicht sinnvoll oder möglich, sich während der Ausführung mit FF_MessageBox einzelne Werte anzeigen zu lassen. In diesem Fall können die zu überwachenden Werte stattdessen in eine Log-Datei geschrieben werden, z.B. mit dieser Prozedur:

JScript: (VBScript siehe weiter unten)
Meldung = "Das ist eine Logging-Info";
 
Log (2, Meldung,"","");    // die Datei wird erzeugt bzw. ergänzt
                           // es werden der Zeitstempel und die Meldung geschrieben
 
function Log(Parameter, t1, t2, t3)
{
// ***************************************************************************************
// * schreibt bis zu drei Werte t1 bis t3 in die Textdatei ff_testlog.txt im Scriptordner
// * mehrere Werte werden durch Semikolon voneinander getrennt und
// * in einer Zeile dargestellt,
// * optional wird eine Zeile mit Datum und Uhrzeit voran gestellt
// * Parameter wird durch Addition folgender Werte gebildet:
// *     0 - vorhandene Datei ergänzen bzw. Datei neu erstellen
// *     1 - ggf. vorhandene Datei löschen und neu erstellen
// *     2 - Zeitstempel einfügen
// **************************************************************************************
 
    var tf,Werte;
    ForAppending = 8;
    var Logdatei;
    Logdatei = FF_GetFFPathEx(2) +"\\ff_testlog.txt";
    if( typeof(fso) == "undefined" )
      fso = new ActiveXObject("Scripting.FileSystemObject");
 
    if( (Parameter == 1) || (Parameter == 3) ) //Datei löschen
     if( fso.FileExists(Logdatei) )
         fso.DeleteFile(Logdatei);
 
    if( (Parameter == 2) ||  (Parameter == 3) ) // mit Zeitstempel
    {
        var D=new Date();
        Werte = "----- " + D.toLocaleDateString() + " " + D.toLocaleTimeString() + " -----\r\n";
    }
    if( t1 != "") Werte = Werte + t1;
    if( t2 != "") Werte = Werte + "; " + t2;
    if( t3 != "") Werte = Werte + "; " + t3;
 
    if( !fso.FileExists(Logdatei) )
    {
     tf = fso.CreateTextFile(Logdatei, true);
     tf.Close();
    }
 
    tf = fso.OpenTextFile(Logdatei, ForAppending, true);
    tf.WriteLine(Werte);
    tf.Close();
} // End Sub
 
 
 
 

VBScript:
Meldung = "Das ist eine Logging-Info"
Call Log (2, Meldung,"","")     ' die Datei wird erzeugt bzw. ergänzt
                                ' es werden der Zeitstempel und die Meldung geschrieben

Sub Log(Parameter, t1, t2, t3)
    ' ***************************************************************************************
    ' * schreibt bis zu drei Werte t1 bis t3 in die Textdatei ff_testlog.txt im Scriptordner
    ' * mehrere Werte werden durch Semikolon voneinander getrennt und
    ' * in einer Zeile dargestellt,
    ' * optional wird eine Zeile mit Datum und Uhrzeit voran gestellt
    ' * Parameter wird durch Addition folgender Werte gebildet:
    ' *     0 - vorhandene Datei ergänzen bzw. Datei neu erstellen
    ' *     1 - ggf. vorhandene Datei löschen und neu erstellen
    ' *     2 - Zeitstempel einfügen
    ' **************************************************************************************

    Dim fso, tf
    Dim Werte
    Const ForAppending = 8
    Dim Logdatei
    Logdatei = FF_GetFFPathEx(2) & "\ff_testlog.txt"
 
    set fso = CreateObject("Scripting.FileSystemObject")
 
    if Parameter = 1 or  Parameter = 3 Then            ' Datei löschen
        If (fso.FileExists(Logdatei)) Then
            fso.DeleteFile(Logdatei)
        End If
    End If
    if Parameter = 2 or Parameter = 3 Then             ' mit Zeitstempel
        Werte = "----- " & Date & " - " & Time & " -----" & vbNewLine
    End If
 
    if t1 <> "" then Werte = Werte & t1
    if t2 <> "" then Werte = Werte & "; " & t2
    if t3 <> "" then Werte = Werte & "; " & t3
 
    If not (fso.FileExists(Logdatei)) Then
        Set tf = fso.CreateTextFile(Logdatei, True)
        tf.Close
    End If
 
    Set tf = fso.OpenTextFile(Logdatei, ForAppending, True)
    tf.WriteLine(Werte)
    tf.Close
End Sub