Logo VB-EDV-Beratung

Log

Die Funktion Log($$$;@) erzeugt aus den übergeben Parametern <procname>, <status>, <format> und eventuellen weiteren Parametern in einer Log-Datei eine Zeile der Form.

    <pid> <date> <time> <status> <format>
$LogName = "protokoll.dat";

sub Log($$$;@) {
    my($proc,$stat,$format,@rest) = @_;
    open(LOGFILE,">>$LogName") or return;
    printf LOGFILE "%6d %-19.19s  %-20.20s  %2s $format\n",$$,
        strftime("%d.%m.%Y %H:%M:%S",localtime),$proc,$stat,@rest;
    close(LOGFILE);
}

Dabei funktioniert der Parameter <format> wie der Format-Parameter von printf(). D.h. weitere Parameter werden statt der %X-Platzhalter eingesetzt.

Der Name der Datei kann in $LogName vorgegeben werden.

Beispiel

sub test($) {
    my ($wert) = @_;
    Log("myprog:test","S","Wert = %0.2f",$wert);
    .
    .
    .
    my $result = ....;
    Log("myprog:test","E","Ergebnis = %0.2f",$result);
    return $result;
}

Protokolliert Start und Ende einer Routine mit Übergabe- und Ergebnis-Werten

  4711 20.10.2000 19:33:53 myprog:test            S Wert = 11.50
  4711 20.10.2000 19:34:03 myprog:test            E Ergebnis = 27.30
© 2003 Volker Böhm Best viewed with any Browser Valid HTML 4.0