Thread Ausgabe auf STDERR und Datei gleichzeitig (quasi wie tee) (14 answers)
Opened by GwenDragon at 2022-08-03 16:01

GwenDragon
 2022-08-06 18:22
#194440 #194440
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
Zweiter Versuch:
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
24
25
26
27
28
29
30
31
package TeeStdErr;
use Fcntl qw(:flock);

my $log_file = "$ENV{DOCUMENT_ROOT}/state/err.log";

sub TIEHANDLE { my $i; bless \$i, shift } 

sub PRINT {
        my $r = shift;
        
        local *STDERR; 
        untie *STDERR;

        print STDERR @_; 

        if ( open my $FH, '>>', $log_file ) { 
                flock $FH, LOCK_EX;
                print $FH "" . localtime, "\t", "ErrorLog: ", @_; 
                close $FH;
        }
        else {
                warn "Open $log_file '$!'", @_; 
        }
}

package main;
        
$| = 1; 

# Tee für STDERR
tie *STDERR, "TeeStdErr";


Schreibt nur ins err.log :(
Aber nicht ins Apache-Log, das ja wohl am STDERR hängt.

Was ist falsch?
Last edited: 2022-08-06 18:39:39 +0200 (CEST)
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

View full thread Ausgabe auf STDERR und Datei gleichzeitig (quasi wie tee)