Log :: Dispatchを使用して、1つ以上の出力へのメッセージングを処理しています。あるケースでは、ファイルにログするデーモンをセットアップしましたが、第三者のモジュールが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. python log stderrをファイル
- 2. Pythonでジェネレータのstderrにプリント
- 3. stderrリダイレクト方法
- 4. リダイレクトstdoutとstderr
- 5. stderrとstderrをリダイレクトしながら、bashの別のファイルにstderrをコピーする
- 6. サブプロセスstderrをstdoutにリダイレクト
- 7. 各スレッドのstdout/stderrをリダイレクト
- 8. 魚の殻でstderrにプリントするには?
- 9. ksh stdoutとstderrを別のプロセスにリダイレクト
- 10. STDOUTとSTDERRをファイル ">&"にリダイレクト
- 11. ruby pipe、IOとstderrリダイレクト
- 12. STDERRがSTDOUTにリダイレクトされる理由
- 13. スクリプト内のstderrをリダイレクトしてプレフィックスを追加する
- 14. 子プロセスstdout/stderrをJavaのメインプロセスstdout/stderrにリダイレクトする方法は?
- 15. nohupとsed、stderrとstdoutをリダイレクト
- 16. C#GUIプロジェクトでstdout + stderrをリダイレクト
- 17. C#Windowsサービスでstdout + stderrをリダイレクト
- 18. バッチファイル内からstdoutとstderrをリダイレクト
- 19. stderrをstdoutにコンソールと2つのファイルにリダイレクトします
- 20. すべてのプリントをメール本文にリダイレクトする方法
- 21. Tomcatは 'stderr'コンテンツを 'stdout'にリダイレクトします
- 22. Makefileルール内のstdoutとstderrのリダイレクト
- 23. WinSock接続へのStdIn/StdOut/StdErrリダイレクト
- 24. winteeを使ってSTDERRだけをリダイレクトする方法は?
- 25. すべてのstderrをbashでリダイレクトする方法は?
- 26. bashスクリプトの出力をstderrにリダイレクトするには
- 27. stdoutをstderrに2度目にリダイレクトするとクラッシュする
- 28. stdoutとstderrをraspbianで動作しないファイルへのリダイレクト
- 29. exec()内でSTDOUTとSTDERRをリダイレクトするシェルなし
- 30. サブプロセスをリダイレクトする。stderrをコンソールに開く
このモジュールは 'warn'を使用していますか、' STDERR'ハンドルに直接書き込んでいますか? – cjm
これはSTDERRに直接書き込みます。つまり、 'print STDERR'です。 – nnutter