Timber 日志未在调试控制台中打印或 Logcat

Timber log is not printing in debug console or Logcat

Log.i("Test", "Hello, Log")
Timber.i("Hello, Timber")

我可以在调试控制台中看到 Log.i 日志,并且 Logcat,我在任何地方都看不到 Timber 日志。

I/Test: Hello, Log

我正在 stagingDebug 模式下构建。 (我有 4 个选项,生产调试和发布以及暂存调试和发布)

我错过了什么?

确保您已在 Application class 中初始化 Timber。以下代码可能会有所帮助:-

public class MyApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        // This will initialise Timber
        if (BuildConfig.DEBUG) {
        Timber.plant(new Timber.DebugTree());
        }
   }
}

在 Kotlin 中初始化 Timber

class ExampleApplication : Application(){

    override fun onCreate() {
        super.onCreate()
        // init timber
        if (BuildConfig.DEBUG) {
            Timber.plant(Timber.DebugTree())
        }
    }
}

并且不要忘记在 Manifest.xml 中写入 android:name 应用程序:

<application
        android:name=".ExampleApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.PostMakerMassive">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

如果您像这样初始化 Timber:

if (BuildConfig.DEBUG) {
    Timber.plant(Timber.DebugTree())
}

请确定,您是从应用程序包中导入 BuildConfig,而不是像这样从第 3 方库中导入的 BuildConfig:import org.koin.android.BuildConfig。我为此苦苦挣扎了几次。

就我而言,我导入了不正确的 BuildConfig。您也可以检查一下您的问题是否也是如此。

尝试在 Timber 中添加 tag。它应该根据清单中的信息(自动)设置,但它并不总是发生(例如,对于具有自定义 OS)

的自定义设备

所以首先种植它:

// Java
Timber.plant(new Timber.DebugTree());

// Kotlin
Timber.plant(Timber.DebugTree())

和下一组标签:

// custom tag
Timber.tag("your custom tag");

// or
Timber.tag("trolololololo");

// or something (more serious) from strings:
Timber.tag(getString(R.string.app_name))