我们总是在开发Android应用时记录异常。我们想要标准化格式和策略以防止打印e.printStackTrace()或不必要的日志?
那么什么是最好的策略?
我们应该实施
Log.x(String tag, String msg, Throwable tr)
至
Log.x(tag, msg+tr.toString())
?
请给我一些建议!
答案 0 :(得分:3)
Log
课程。 让每个类导入此而不是android.util.Log
public class Log{
public static final boolean enableInfo = false;
public static final boolean enableError = true;
public static final boolean enableDebug = true;
public static final boolean enableVerbose = false;
public static void i(String tag, String msg) {
if(enableInfo) {
android.util.Log.i(tag,msg);
}
}
public static void e(String tag, String msg) {
if(enableError) {
android.util.Log.e(tag,msg);
}
}
public static void e(String tag, String msg, Exception e) {
if(enableError) {
android.util.Log.e(tag,msg, e);
}
}
public static void v(String tag, String msg) {
if(enableVerbose) {
android.util.Log.v(tag,msg);
}
}
public static void d(String tag, String msg) {
if(enableDebug) {
android.util.Log.d(tag,msg);
}
}
}
使用这种技术,您可以通过更改单个文件中的常量来启用和禁用整个应用程序中的日志,以便在必须进行构建以释放应用程序时等。
public static final boolean enableInfo = false;
public static final boolean enableError = true;
public static final boolean enableDebug = true;
public static final boolean enableVerbose = false;
答案 1 :(得分:0)
异常是错误,因此为了突出它们,我总是喜欢在android中使用Log.e。我总是使用Log.e(LOG_TAG,e.getMessage());.我总是希望保持我的异常/抛出消息简短而有意义。有时您可以打印自己的日志消息,如Log.e(LOG_TAG,“除以零错误”);
由你决定哪个更适合你。
答案 2 :(得分:0)
你肯定想使用Log.e / w / d / i 我将它包装到另一个函数调用中,以便我可以在发布版本中隐藏它们,但只是在函数调用中测试一个布尔常量