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 14:23
#194438 #194438
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Ich werde am Anfang des Programms dann das einfügen, damit STDErr gefangen wird.

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
use vars qw( $log_file );
$log_file = "T:/err.log";

package TeeStderr;

use Fcntl qw(:flock);

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

sub PRINT {
    my $r = shift;
    print "STDERR $$ ", @_;

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

package main;

$| = 1;
tie *STDERR, "TeeStderr";


Geht auf der Kommandozeile von Linux und Windows, aber entzieht auf einem Linux Apache STDERR, sodass der nichts mehr ins Errorlog bekommt.

//EDIT:
Ich finde aber nix dazu auf https://metacpan.org/release/SHAY/perl-5.34.1/view...
Last edited: 2022-08-06 17:34:11 +0200 (CEST)

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