我正在使用Log :: Dispatch來處理消息到一個或多個輸出。在一種情況下,我設置了一個守護進程,記錄到一個文件中,但是如果它使用第三方模塊寫入STDERR,那麼我在日誌中就看不到了。我希望能夠將任何寫入STDERR的內容重定向到Log :: Dispatch。這可能嗎?有沒有辦法將打印重定向到STDERR,以便它們進入Log :: Dispatch?
3
A
回答
5
你可以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
+0
謝謝。這工作。 – nnutter
+0
其實因爲它沒有保持任何狀態,所以你可以用'bless \ do {0},$ pkg' –
相關問題
- 1. 有沒有辦法將stderr重定向到Jupyter中的文件?
- 2. 有沒有辦法不將人們重定向到Mailchimp的「謝謝」頁面?
- 3. 有沒有辦法將INSTALLDIR重定向到另一個目錄?
- 4. 將子進程stderr重定向到stdout
- 5. 如何將stdout和stderr重定向到管道但保持它們的有序
- 6. 有沒有辦法將XAML元素定義爲不可打印?
- 7. 有沒有辦法將調試信息打印到日誌中?
- 8. 有沒有辦法在Netbeans中將輸入從文件重定向到stdin?
- 9. 有沒有辦法將輸入和輸出重定向到同一個文件?
- 10. 有沒有辦法打印SEL操作?
- 11. 無法將stderr重定向到文件
- 12. 將Python和GTK3錯誤打印到stderr,它們是什麼?
- 13. 有沒有辦法讓在EDMX模型中定義的實體展開以便它們不重疊?
- 14. 有沒有辦法將Java程序中的打印語句重定向到所需的文本文件?
- 15. 有沒有辦法將一個子程序的打印輸出捕獲到一個變量,所以我可以將它發送到stderr呢?
- 16. 在python中,我可以將打印函數的輸出重定向到stderr嗎?
- 17. 有沒有辦法加入他們?
- 18. 有沒有辦法防止角重定向#foo到#/ foo?
- 19. Netbeans有「打印到HTML」 - 有沒有辦法將此功能添加到Eclipse?
- 20. 有沒有辦法將一個鍵綁定到一個函數,以便它執行1次並刪除綁定?
- 21. 'dispatch'沒有定義
- 22. 有沒有辦法可以打印出X509Certificate?
- 23. 有沒有辦法在Python中打印函數的定義
- 24. 有沒有辦法打印一個特定DIV的內容
- 25. 有沒有辦法引用xml註釋以避免重複它們?
- 26. 有沒有辦法重新定位/重置方向?
- 27. 有沒有辦法將進程鎖定到CPU?
- 28. 有沒有辦法打印javascript console.errors到Rspec/Capybara/Selenium的終端?
- 29. 有沒有辦法'漂亮'打印MongoDB shell輸出到文件?
- 30. 有沒有辦法阻止日誌消息被打印到LogCat?
此模塊使用'warn',還是直接寫入'STDERR'句柄? – cjm
它直接寫入STDERR,即'print STDERR'。 – nnutter