mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
log all mtr output in vardir/log/stdout.log
despite the name, it logs both stdout and stderr
This commit is contained in:
@ -186,8 +186,10 @@ sub create_process {
|
||||
# it and any childs(that hasn't changed group themself)
|
||||
setpgrp(0,0) if $opts{setpgrp};
|
||||
|
||||
if ( $output and !open(STDOUT, $open_mode, $output) ) {
|
||||
croak("can't redirect STDOUT to '$output': $!");
|
||||
if ( $output ) {
|
||||
close STDOUT;
|
||||
open(STDOUT, $open_mode, $output)
|
||||
or croak "can't redirect STDOUT to '$output': $!";
|
||||
}
|
||||
|
||||
if ( $error ) {
|
||||
@ -196,8 +198,10 @@ sub create_process {
|
||||
croak("can't dup STDOUT: $!");
|
||||
}
|
||||
}
|
||||
elsif ( ! open(STDERR, $open_mode, $error) ) {
|
||||
croak("can't redirect STDERR to '$error': $!");
|
||||
else {
|
||||
close STDERR;
|
||||
open(STDERR, $open_mode, $error)
|
||||
or croak "can't redirect STDERR to '$error': $!";
|
||||
}
|
||||
}
|
||||
|
||||
|
23
mysql-test/lib/My/Tee.pm
Normal file
23
mysql-test/lib/My/Tee.pm
Normal file
@ -0,0 +1,23 @@
|
||||
package My::Tee;
|
||||
|
||||
# see PerlIO::via
|
||||
|
||||
our $copyfh;
|
||||
|
||||
sub PUSHED
|
||||
{
|
||||
open($copyfh, '>', "$::opt_vardir/log/stdout.log")
|
||||
or die "open(>$::opt_vardir/log/stdout.log): $!"
|
||||
unless $copyfh;
|
||||
bless { }, shift;
|
||||
}
|
||||
|
||||
sub WRITE
|
||||
{
|
||||
my ($obj, $buf, $fh) = @_;
|
||||
print $fh $buf;
|
||||
print $copyfh $buf;
|
||||
return length($buf);
|
||||
}
|
||||
|
||||
1;
|
Reference in New Issue
Block a user