2011-10-03 5 views
6

私は書いているPerlモジュールにログを記録したいが、それを使用するアプリケーションが特定のログメカニズム(例えば、Log::Log4Perl)にバインドされないように移植性を維持する。Perlモジュールにどのようにログを記録するのですか?

私は考えました。

  1. STDERRにログインし、それ自身のログメカニズム(Log::Log4Perl FAQに述べたように)に、これらのメッセージをリダイレクトするために、アプリケーションにそれを残します。
  2. モジュールには全くログを記録しません。

私はそこに良い方法があると思う。

答えて

11

Log::Any

ログイン::すべてのアプリケーションは、(選択するか、減退)を選択させながら、このようなログ::発送とロギングメカニズム、CPANモジュールは、安全かつ効率的にメッセージをログに記録することができますまたはログイン:: Log4perl 。

+0

これは本当に面白そうです。私はそれについて多くの議論を見つけることができません、誰かがそれを使用している場合私は興味がありますか? – Hugh

+1

逆依存関係検索では、いくつかの使用法が示されています。https://metacpan.org/requires/distribution/Log-Any?sort=[[2,1]]。私はそれに行くつもりです。 – spazm

0

どのようなやり方でも、あなたは1つを選択する必要があります。それはそれをメカニズムに結びつけます。だから1つを選ぶかもしれない。

Log :: Log4Perlが利用できるかどうかチェックしないのはなぜですか?それが素晴らしいなら、それを使用してください。そうでない場合は、ユーザーがコールバックできるコールバックを実装するか、または何をログに記録するかを制御するための最小限のAPIを実装します。

関連する問題