📜  使用Android中的Timber Library更好地记录日志

📅  最后修改于: 2021-05-13 17:43:03             🧑  作者: Mango

在本文中,我们将在Android中构建一个应用程序,以实现比android的默认Log类更好的日志记录实用程序类。为此,我们将使用Timber Library,这是一个具有可扩展API的小型记录器。作为Android开发人员,我们在项目中使用许多日志语句来生成输出,以在不同阶段测试我们的应用程序。日志有许多类型,例如详细,调试,警告,信息,错误。我们在应用程序中使用各种Log语句来查找错误和调试。准备好发布应用程序后,我们需要删除所有日志语句,以使生成的APK不包含任何其他应用程序数据。为了解决这个问题,我们有几种方法:

  • 基于条件的日志记录
  • 护卫队
  • 木材

基于条件的日志记录

使用此方法,我们检查启用了记录器的级别,然后将消息记录到该级别。我们只需要在Application类中创建一个布尔变量即可检查日志记录。在应用程序中的每个日志语句之前和释放应用程序之前,请使用此布尔条件,将其更改为isDebug = false。下面是Application类的代码片段。

Java
import android.app.Application;
  
public class LogApplication extends Application {
  
    public static boolean checkDebug;
    @Override
    public void onCreate() {
        super.onCreate();
        checkDebug = true;
    }
}


Java
import android.app.Application;
import timber.log.Timber;
  
public class MyTimber extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
          
        // initialize timber in application class
        Timber.plant(new Timber.DebugTree());
    }
}


XML


        
            
                
                
            
        
    
  


Java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import timber.log.Timber;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Timber.i("Timber loggin is ready");
    }
}


护卫队

ProGuard用于清除未使用的代码。在这里,我们可以使用它来删除发行版中的Log语句。在proguard-android-optimize.txt中添加要在发布版本中删除的日志方法。从Gradle脚本中打开此文件,并添加所有在发布时需要删除的日志语句。下面是代码片段

木材

这是Timber Logging库进入的地方,它可以通过自动生成标签并随后从生成的APK中删除日志来减少繁琐的任务。让我们讨论将Timber集成到我们的Android项目中。

分步实施

步骤1:添加依赖项

Timber是Jake Wharton创建的开源库。要添加其依赖关系,请打开build.gradle文件并添加–

并同步项目。

步骤2:建立应用程式类别

我们需要为应用程序创建一个单独的基类,以便Timber库可以在所有活动中使用。要在应用程序启动后尽快初始化木材,最好将其保留在应用程序类中。

Java

import android.app.Application;
import timber.log.Timber;
  
public class MyTimber extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
          
        // initialize timber in application class
        Timber.plant(new Timber.DebugTree());
    }
}

创建应用程序类后,更改AndroiManifest.xml文件中的默认应用程序类

XML格式



        
            
                
                
            
        
    
  

步骤3:使用木材进行记录

现在,我们可以使用木材登录到我们的所有android活动。

Java

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import timber.log.Timber;
  
public class MainActivity extends AppCompatActivity {
  
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Timber.i("Timber loggin is ready");
    }
}