Per android.util.Log 提供了一种启用/禁用日志的方法:
public static native boolean isLoggable(String tag, int level);
默认情况下,方法 isLoggable(...) 仅在您在设备中设置属性后返回 false,如下所示:
adb shell setprop log.tag.MyAppTag DEBUG
这意味着可以打印出任何高于 DEBUG 级别的日志。参考安卓文档:
检查指定标签的日志是否可在指定级别记录。任何标签的默认级别都设置为 INFO。这意味着将记录任何高于并包括 INFO 的级别。在调用记录方法之前,您应该检查是否应该记录您的标签。您可以通过设置系统属性来更改默认级别:'setprop log.tag。' 其中 level 是 VERBOSE、DEBUG、INFO、WARN、ERROR、ASSERT 或 SUPPRESS。SUPPRESS 将关闭您的标签的所有日志记录。您还可以创建一个包含以下内容的 local.prop 文件:'log.tag.=' 并将其放在 /data/local.prop 中。
所以我们可以使用自定义日志工具:
public final class Dlog
{
public static void v(String tag, String msg)
{
if (Log.isLoggable(tag, Log.VERBOSE))
Log.v(tag, msg);
}
public static void d(String tag, String msg)
{
if (Log.isLoggable(tag, Log.DEBUG))
Log.d(tag, msg);
}
public static void i(String tag, String msg)
{
if (Log.isLoggable(tag, Log.INFO))
Log.i(tag, msg);
}
public static void w(String tag, String msg)
{
if (Log.isLoggable(tag, Log.WARN))
Log.w(tag, msg);
}
public static void e(String tag, String msg)
{
if (Log.isLoggable(tag, Log.ERROR))
Log.e(tag, msg);
}
}