デバッグビルド中にリークしたオブジェクトを自動で報告する、Android向けメモリリーク検出ライブラリ。
JakeWharton/timber
AndroidのプラットフォームLogクラスを、差し替え可能なTreeバックエンドでラップする、軽量で拡張性の高いログライブラリ。
- スター
- 10,852
- フォーク
- 994
- 未解決の Issue
- 63
- 最終コミット
- 3 日前
これは何?
Timberは、Androidのプラットフォームにあるandroid.util.Logクラスの上に構築されたログライブラリです。毎回タグを手動で指定してLogを直接呼び出す代わりに、staticなTimberメソッドを呼び出し、起動時に登録したTreeインスタンスによって動作を制御します。
同梱のDebugTreeは、呼び出し元のクラス名をログタグとして自動的に使用するため、Pidcatなどのツールでログを簡単に絞り込めます。デフォルトではTreeが登録されないため、本番環境でのログ出力はアプリ側で全面的に制御できます。開発者は独自のTree実装を作成し、メッセージをクラッシュレポートなどの送信先に振り分けられます。
TimberにはAndroid Lintルールも組み込まれており、フォーマット文字列の引数の数や型の不一致、長すぎるタグ、TimberではなくLogを直接使っている箇所、例外メッセージの冗長なログ出力を検出します。
主な機能
- 01アプリの起動時に登録した差し替え可能なTreeインスタンスを通じてログを出力します。
- 02DebugTreeは呼び出し元のクラス名をログタグとして自動的に使用します。
- 03デフォルトのTreeはなく、本番環境でのログ出力はアプリ側に委ねられます。
- 04フォーマット引数、タグの長さ、Logの使用に関するLintルールを組み込んでいます。
ユースケース
- Androidアプリに散在するandroid.util.Logの呼び出しを、統一されたログAPIに置き換える。
- 独自のTreeを通じて、本番ビルドのログをクラッシュレポートサービスに送信する。
- Pidcatなどのツールで、クラス名を使ってデバッグログを絞り込む。
クイックスタート
- 1
README に記載されている Timber の依存関係を Gradle ビルドに追加します
- 2
アプリケーションの onCreate で Tree をインストールし、Timber の static メソッドを呼び出します
使う前に知っておきたいこと
- Android 専用で、プラットフォームの Log クラスを基盤としています。
- デフォルトでは Tree がインストールされないため、自分で Tree を植えないとログは記録されません。
収録されている特集
トピック
よくある質問
- timber とは?
- AndroidのプラットフォームLogクラスを、差し替え可能なTreeバックエンドでラップする、軽量で拡張性の高いログライブラリ。 Timberは、Androidのプラットフォームにあるandroid.util.Logクラスの上に構築されたログライブラリです。毎回タグを手動で指定してLogを直接呼び出す代わりに、staticなTimberメソッドを呼び出し、起動時に登録したTreeインスタンスによって動作を制御します。
- timber は無料で使えますか?ライセンスは?
- timber は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- timber は今もメンテナンスされていますか?
- 活発にメンテナンス中。timber の最終コミットは 2026年11月4日 です。
- timber は何に使えますか?
- Androidアプリに散在するandroid.util.Logの呼び出しを、統一されたログAPIに置き換える。 独自のTreeを通じて、本番ビルドのログをクラッシュレポートサービスに送信する。 Pidcatなどのツールで、クラス名を使ってデバッグログを絞り込む。
- timber のインストール方法は?
- README に記載されている Timber の依存関係を Gradle ビルドに追加します アプリケーションの onCreate で Tree をインストールし、Timber の static メソッドを呼び出します
- timber はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/JakeWharton/timber
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
標準のlogging設定を単一のloggerに置き換え、ファイルのローテーション、カラー出力、構造化ログを提供するPythonロギングライブラリ。
DEBUG環境変数で有効化でき、Node.jsとWebブラウザーで名前空間付きのデバッグ出力を行う、小さなJavaScriptユーティリティです。
変数名や式とその値を、整形・構文ハイライト付きで表示するPythonデバッグヘルパー。ic()でprint()を置き換えられます。
関数呼び出しを記録し、コードの実行をインタラクティブなタイムラインで可視化する、低オーバーヘッドのPythonトレーサーです。
主にLaravelアプリ向けのPHP開発ツール。リクエストデータ、クエリ、ログ、タイムラインなどをブラウザで確認できます。