如何为android中的每个类或活动保存单独的日志文件?

时间:2017-08-01 18:19:44

标签: android

我的问题是将日志文件保存到SD卡中。假设我有3个类文件,分别为class1,class2和class3。然后我想将日志文件保存为class1.txtclass2.txtclass3.txt

1 个答案:

答案 0 :(得分:0)

维护日志的更好方法:

将以下代码添加到build.gradle文件[Module:app]

当应用程序处于调试模式时,日志必须显示,而不是在发布模式时,以避免出现安全问题。

buildTypes {
        release {
            buildConfigField "Boolean", "IS_DEBUG", "false"
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config
        }
        debug {
            buildConfigField "Boolean", "IS_DEBUG", "true"
            signingConfig signingConfigs.config

        }
    }

在Utility类上创建如下:

public class Logger {
    //Debug Logs
    public static void d(String tag, String msg) {
        if (BuildConfig.IS_DEBUG) {
            Log.e(tag, msg);
        }
    }
    //Warning Logs
    public static void w(String tag, String msg) {
        if (BuildConfig.IS_DEBUG) {
            Log.e(tag, msg);
        }
    }
    //Verbose Logs
    public static void v(String msg) {
        if (BuildConfig.IS_DEBUG) {
            Log.v(Parent.TAG, msg);
        }
    }
    //Error Logs
    public static void e(String tag, String msg, Throwable t) {
        if (BuildConfig.IS_DEBUG) {
            Log.e(tag, msg, t);
        }
    }
}

在您的相应课程中,请将TAG定义为班级名称

ex:private String TAG =“AddNavigationDrawerSctivity”;

请致电如下:

调试日志:

Logger.d(TAG,“isMenuFeature():”+ mNavigationMenuItemsModel.isIsMenuFeature());

错误日志:

Logger.e(TAG,“失败”+ t.getMessage(),t);

在特定屏幕上工作时,您可以使用TAG名称进行过滤。

在Timer中使用下面的代码段来每5秒捕获一次日志

String command = "C:\Users\vos\AppData\Local\Android\Sdk\platform-tools>adb logcat";
Process process = Runtime.getRuntime().exec(command);
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));

如果有帮助请告知。