3

Google の Java Logging Library はありますか?

私はGoogle Guavaライブラリを使用しており、引数の検証に Apache Commons よりもはるかに使いやすいことがわかりました (つまり、前提条件、不変オブジェクトの状態のチェック、適切なException型の on null、 emptyの便利なスロー、代入Stringによるインラインチェック、メッセージの書式設定、および null 許容の特殊な型付け)種類)。ライブラリの他の機能は見ていませんが、切り替えるにはこれで十分でした。nullException

さて、非常に自然な質問:

引数の検証のために行っていたように、Apache Commons Loggingを使用してログを記録しています。Google のフレームワークの「これは11に進む」に似たもので、複合的なメリットがありますか? Log4jもCommonsも気にしませんが、Guavaは私が研究した側面でCommonsよりもはるかに優れています...

Android にはロギング フレームワークがあるようですが、Google は基本的な Java 用にもロギング フレームワークを提供していますか?


編集:私の質問を読み直して、私が持っていないGoogleコードの独断的な好みと、Googleから出てくるものはすべて定義上「完璧」であるという根本的な仮定を示唆している可能性があることに気付きました。私はこれらの「前向きな先入観」をまったく持っていません。私が意図していたが、書面で伝えられなかったのは、2 つのレイヤーに単一のプロバイダーを採用することで相乗効果が得られる可能性があるということです。Guava Optional オブジェクトや関連オブジェクトなど、インテリジェントにログを記録するものがある場合があり、特定の String.format() を構築する時間を節約できます。アプリオリからではなく、これらの潜在的な相乗効果を活用する Google ライブラリを探していました好み。実際、切り替えを決定する前に、最初に Guava を以前の Commons ベースの引数チェックの方法と比較しました。すべてのことを考慮して、私は Google が無料でリリースしたコードに非常に感謝しています。私はそこから多くのことを学んだと思います。その非常に高い品質を考えると、これからもそうするつもりです。しかし、私はこれがカルトになることを決して許しませんでした。


参考文献:

4

2 に答える 2

7

Commons Logging は避けるのが最善です。詳細な分析については、http://articles.qos.ch/thinkAgain.htmlを参照してください。はい、それは非常に古いものです(そして、はい、著者には既得権があります)が、すべて当てはまります。リンクされた「Commons Logging was my fault」は、このライブラリに対する愛情があまりないことを示しています。

どうやら、Google が推奨するソリューションは java.util.logging です。これは、Google App Engine で Java プログラミングを行う場合に表示されます。

最良の標準は、logback 上の slf4j です。それを避ける理由はないと思います。すでに slf4j を使用している可能性は十分にあります - 直接ではないにしても、クラスパス上の他のライブラリを介して間接的に - これは事実上の最新の標準です。

于 2012-09-18T02:56:04.093 に答える
4

私が知っていることではありません。slf4jの使用をお勧めします。

于 2012-09-17T10:13:59.600 に答える