Я искал Интернет и нашел несколько хороших решений для teeing STDOUT в 2 разных местах. Как и файл журнала, а также экран в то же время. Вот один пример:
use IO::Tee;
my $log_filename = "log.txt";
my $log_filehandle;
open( $log_filehandle, '>>', $log_filename )
or die("Can't open $log_filename for append: $!");
my $tee = IO::Tee->new( $log_filehandle, \*STDOUT );
select $tee;
Но это решение оставляет STDERR идущим только на экран, и я хочу, чтобы STDERR переходил как на экран, так и в тот же файл журнала, в который записывается STDOUT. Возможно ли это?
Моя задача - запустить мой процесс сборки, но я также хочу увидеть его на экране IDE, как обычно. И протоколирование сообщений об ошибках столь же важно, как ведение журнала счастливых сообщений. И получение ошибок, регистрируемых в отдельном файле журнала, не является хорошим решением.