Есть ли способ перенаправить печать в STDERR, чтобы они пошли в Log :: Dispatch? - PullRequest
3 голосов
/ 06 декабря 2011

Я использую Log :: Dispatch для обработки сообщений на один или несколько выходов. В одном случае я настроил демона, который регистрирует файл, но если сторонний модуль использует запись в STDERR, я не вижу этого в своем журнале. Я хотел бы иметь возможность иметь что-либо записанное в STDERR для перенаправления в Log :: Dispatch. Возможно ли это?

1 Ответ

5 голосов
/ 06 декабря 2011

Вы могли бы tie это делать все, что вы хотите.См perltie:

{
    package StderrToLogDispatch;
    sub TIEHANDLE {
        my ($pkg) = @_;
        return bless {}, $pkg;
    }
    sub PRINT {
        my @msg = @_;
        chomp $msg[-1];
        # I don't use Log::Dispatch, so don't know if this is even close
        Log::Dispatch->logToFile(@msg);
    }
}

tie *STDERR, 'StderrToLogDispatch';
print STDERR 'foo';   # invokes StderrToLogDispatch->PRINT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...