Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]5689[/thread]

Modul Net::SMTP Logdatei erzeugen: Logdatei erzeugen



<< >> 5 Einträge, 1 Seite
fkilian
 2003-09-04 16:09
#83890 #83890
User since
2003-09-04
2 Artikel
BenutzerIn
[default_avatar]
Den Versand der Formulare auf meiner Homepage erledige ich mit dem Modul Net::SMTP. Das funktioniert so weit ganz gut.

Allerdings möchte ich die Ausgabe der diversen Meldungen beim Senden mit eingeschalteten debug-mode nicht auf dem Screen sehen, sondern in eine Log-Datei umleiten. Ein erster Versuch mit select auf eine geöffnete Datei hat nicht geklappt.

Sinn & Zweck: Protokollierung des erfolgreichen Absendens an den smtp-server.

Vielleicht kennt jemand auch eine andere Möglichkeit, diese Protokollierung vorzunehmen. Ich habe bisher nur die Idee, den Debug-Mode einzuschalten, dessen Ausgabe aber in eine Datei umzuleiten. Nur habe ich letzteres noch nicht geschafft.

Wie kann ich dies bewirken.

Besten Dank im Voraus.

Gruß,
frank.
Relais
 2003-09-04 16:36
#83891 #83891
User since
2003-08-06
2246 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn die Ausgaben auf STDOUT oder STDERR kommen, mußt Du zuvor
ein Filehandle namens STDOUT oder STDERR schließen, dann erneut mit einer Datei mit open (perlopentut) öffnen.

Code: (dl )
close STDOUT; open(STDOUT, "> test.STDOUT") or die $!; print "blah"


oder

Code: (dl )
close STDERR; open(STDERR, "> test.STDERR") or die $!; warn "blah"
Erst denken, dann posten --
27. Deutscher Perl- u. Raku -Workshop (Termin wird noch gesucht) 2025 in München.

Winter is Coming
Strat
 2003-09-04 19:09
#83892 #83892
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
bei STDOUT reicht auch ein select, z.B.

Code (perl): (dl )
1
2
3
4
5
6
open (LOG, ">" . $logfile) or die $!;
my $oldFH = select(LOG);

print "das hier geht ins log$/ ";

select ($oldFH); # vorherigen Standardhandle wiederherstellen, meistens STDOUT
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
fkilian
 2003-09-04 19:17
#83893 #83893
User since
2003-09-04
2 Artikel
BenutzerIn
[default_avatar]
besten dank!

a) der vorherige close war wichtig
b) STDERR war mir nicht bekannt und debug-ausgaben landen darin und nicht im STDOUT (warum auch immer)
Crian
 2003-09-08 17:43
#83894 #83894
User since
2003-08-04
5872 Artikel
ModeratorIn
[Homepage]
user image
Ganz einfach, damit Du zwischen Fehlermeldungen oder Statusmeldungen und den gelieferten Daten unterscheiden kannst. Das ist bei sehr vielen Programmen so. Diese kannst Du dann mit Ausgabeumlenkung in eine Datei starten, die Statusanzeigen sind dann aber trotzdem auf dem Bildschirm zu sehen und verunzieren nicht Deine Daten. (Es sei denn, Du leitest die mit 2> auch um ...)\n\n

<!--EDIT|Crian|1063028627-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< >> 5 Einträge, 1 Seite



View all threads created 2003-09-04 16:09.