LoginSignup
0
0

More than 1 year has passed since last update.

LogNotTimberの注釈を非表示にする方法

Posted at

過去の担当者が全員いなくなっているプロジェクトを保守したときのお話。

おそらく当初はandroid.util.Log(以下Log表記)で運用されていたが、どこかで誰かがTimberを導入したのでしょう。自分の担当した部分だけに。
TimberとLogが共存するとどうなるかというと、Logすべてに黄色波線が引かれます。
前述の通り、このプロジェクトはLogから始まったプロジェクトのため、圧倒的にLogの方が多いため波線がいたるところに引かれていました。これではコード中にノイズが多く、コードリーディングの効率が下がってしまいます。

というわけで方法を探しました。

Lint自体をオフにする

Logの存在確認自体をオフにする方法です。
有効にTimberを利用できていればLogの置換漏れを発見できなくなるメリットはありますが、今回は正常化させる工数的余裕がないので無視します。

Preferences | Editor | Inspections

の「Logging call to Log instead of Timber」のチェックを外して適用すれば波線は引かれなくなります。

スクリーンショット 2021-06-28 16.52.25.png

@SuppressLint()を利用する

Logが含まれているメソッドor関数にアノテーションを付与する方法です。

@SuppressLint("LogNotTimber")
fun foo() {
    Log.d("bar")
}

これで波線は引かれなくなります。

お気持ち

Android Studioが提案してくるので紹介しましたが、個人的には好きでない方法です。理由としては

  • 各メソッドor関数に全て記述する必要がある
  • 例外を握りつぶしているのと同じ。致命的な見逃しが起こりうる

の2点です。面倒くさい上にトラブルの種を埋めることはしたくないので基本的にやりません。

おわりに

他にやり方があれば知りたいです。たとえばプロジェクトごとに特定のLintをオフにする方法とかがあれば。

最後に一言、
既存部分に影響のあるライブラリを追加する場合はきっちり全て対応するか、あきらめて既存の方法に従え!
ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0