Thread Warnungen des Programms überwachen und ins error.log des Apache schreiben (54 answers)
Opened by bianca at 2010-02-06 13:52

bianca
 2010-02-06 18:47
#131968 #131968
User since
2009-09-13
6977 Artikel
BenutzerIn

user image
Hab es jetzt so gelöst:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#!/usr/bin/perl -w
$| = 1;
use strict;
use warnings;
use Fcntl qw(:DEFAULT :flock);
my %env = (
        chmod_dateien => 0666,
);
print "Content-Type: text/html\n\nHallo!<br><br>";
my @errorstack;
local $SIG{__WARN__} = sub {
        (my $error = shift) =~ s/[\r\n]//g;
        push @errorstack,$error;
        sysopen (my $errorlog,'errorlog.txt',O_WRONLY|O_APPEND|O_CREAT,$env{chmod_dateien});
        if ($! eq '') {
                print $errorlog '[' . localtime() . '] [error] [client ' . (defined $ENV{'REMOTE_ADDR'} ? $ENV{'REMOTE_ADDR'} : 'n.a.') . '] ' . $error . "\n";
                close $errorlog;
        }
};
print "Vorher: @errorstack<br>\n";
require 'test2.pl';
&fehlersub ('foo');
print "Nachher: @errorstack<br>\n";


Das schreibt den Fehler in die error.log und löst mein Problem.
Perfekt!

Nochmal Danke!

Edit an pq als Wunsch/Request: Jetzt wäre es schön, wenn man diesem Beitrag als Thread-Eröffner das Kennzeichen "Lösung" geben könnte und dadurch dieser Beitrag farblich oder sonstwie kenntlich gemacht würde. Wäre für jemanden, der die Frage liest und das gleiche Problem hat einfacher, sofort die Lösung zu finden.
Last edited: 2010-02-06 18:51:59 +0100 (CET)
10 print "Hallo"
20 goto 10

View full thread Warnungen des Programms überwachen und ins error.log des Apache schreiben