2011-12-06 9 views
3

なぜAndroidロギングを使用する必要がありますか?デバッグ目的でのみ使用する必要がありますか?プロダクションアプリケーションに保存すると、かなり減速するようです。なぜandroid Logクラスを使用すべきですか?

私の質問の重要な部分は、いつ使うべきか...どのような場合に必要なのでしょうか?これを使用するためのベストプラクティスはありますか?

これは非常にばかげた質問かアマチュアな質問かもしれませんが、私はその必要性を理解していない、またはそれを使用するように強制されました。私は何かを見逃しているかもしれない。

http://developer.android.com/reference/android/util/Log.html

も ​​- 私はすでになどのエラー/冗長/情報/のログが異なっていることを知っている、とデバッグないとき、一部が破棄されます。私に理由を教えずに、クラス概要に記載されている情報を繰り返し表示しないでください。ありがとう!

+1

Androidサイトの公開ページには、すべてのロギングをコメント/削除する必要があるため、本番環境では使用しないでください。 – Ricky

+1

プロダクション電話機でどのくらいロギングがオフになっていないかを確認することは楽しいことです。非常に面白いメッセージがログに記録されることがあり、これらのメッセージは常に私がおそらく最悪のAndroidプログラマーではないことを願っています。 –

+0

全く愚かな質問ではありません。多くの人々がコード(例えば、オンラインチュートリアルなど)でそれを使用し、その意義を決して言及しません。 –

答えて

3

私はあなたに同意します。起こっとエラーになっているものを把握しようとしたとき、私はずっと、デバッグオーバーログを読んで(とユニットテストの以上のデバッグ)を好みます。

アプリケーションがクラッシュして例外が発生したときに「追加の詳細」をログに記録すると便利だと主張する人もいますが、通常は、例外自体が必要なときにその詳細を保持してgetMessage 。したがって、LogCatに含まれているデフォルトのスタックトレースは、何が起こっているかを十分に把握しています。

しかし、いずれにせよ、それは私がこれまでのところ、それは本当に重宝していないにもかかわらず、あなたはPreparing for Releaseを参照してください、それは私のコメントについて:)

0

を助けるかもしれない時に知っていることはありません、何かをログに記録する可能性を持っていることは常に良いことです。 (ロギングの表示は、リリース前に削除する必要があるため、本番環境では使用されません。どのように私は値を得ることができ、私は他の日のログインに使用

Turn off logging and debugging 

Make sure you deactivate logging and disable the debugging option before you build your 
application for release. You can deactivate logging by removing calls to Log methods 
in your source files. 

は、私はいくつかの作業を行うための別のスレッドをオフに解雇が、私は、ロギングなしかToast年代を表示し、スレッドで生産されているいくつかのデータをチェックするために必要な?私は前にEclipseでコードをデバッグ/実行してみて、いくつかの問題に直面しています。

ロギングでは、それぞれの値をログに記録し、logcatを見て、自分のコードが何をしているのかを正確に知ることができます。

+0

デバッグ中に遭遇した「いくつかの問題」は回避できたはずでした。デバッグは、通常、マルチで正しく取得するのに苦労しているにもかかわらず、スレッド環境。理想的な世界では、単体テストのカバレッジが十分であれば、ロギングもデバッグも必要ありません。 – Guillaume

+0

ポイントを取得しましたが、「デバッグは、通常、ボンネットの状況を知るためのログよりはるかに効率的です。なぜですか? – Ricky

+0

いろいろな理由から、慎重に段階的に進んでいくと、スレッドがどのパスに従っているかを正確に見ることができます(プレーン・ロギングでは非常に困難です)。ステップスルーすると詳細を見ることができます。依存性を含む任意の可変状態、または実行時に特定のインスタンスの状態をチェックするために非常に貴重な任意の式を評価します。 – Guillaume

0

通常は、何か問題があることがわかっている場合にのみデバッグします。

ロギング(たとえば、INFOレベル)で、アプリでデータをトレースするための追加情報を追加できます。これにより、であることがわかります。 したがって、より高いレベルの概要が追加されます。

また、簡単に無効にすることができ、アプリケーションを大幅に遅くすることはありません(done right)ので、すべての機能が正しく動作するかどうかを確認する別の方法があります。 (Logging vs. Debugging、特に@smonff's answerのリンクも参照してください。)

関連する問題