Font
[thread]5689[/thread]

Modul Net::SMTP Logdatei erzeugen: Logdatei erzeugen



<< >> 5 entries, 1 page
fkilian
 2003-09-04 16:09
#83890 #83890
User since
2003-09-04
2 articles
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
2239 articles
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 -- Frankfurt.pm-Treffen am Dienstag 07.01.2020 im Café Diesseits
22. Deutscher Perl-Workshop 04. bis 06.03.2020 in Erlangen.
Frankfurt Perl-Workshop 2020-1 ca. Mai-Juni 2020 im Haus der Jugend

Winter is Coming
Strat
 2003-09-04 19:09
#83892 #83892
User since
2003-08-04
5246 articles
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 articles
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
5829 articles
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 entries, 1 page



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