我在项目中的所有地方都使用log.d/v/w/e。
现在,我希望将所有日志保存到设备本地文件中。
但是,最后一个类中的android.util.Log类。
这意味着我不能从它延伸。
有没有办法接管android.util.Log的控制权,这样我就不需要在项目中到处更改log.d/v/w/e?
我正在寻找一种简单的方法来知道log.d/v/w/e是否被调用,这样我就可以将信息写入本地文件。
发布于 2019-04-10 10:09:38
当您需要添加到最终类的功能时,一种常见的选择是使用装饰器(包装器)模式:
public class LogUtils {
public static void LOGE(String tag, String message) {
Log.e(tag, message);
doSomethingElse();
}
...
}这种日志记录的实现非常流行。
但是,还有另一种选择来编写您自己的包装器。Java的库Timber已经处理了所有的实用程序,并添加了一些其他的功能,比如自动标记和String.format for Java的使用。
您可以添加自己的功能来处理自己的诊断逻辑,如下所示:
public class MyLoggingClass extends DebugTree {
@Override
public void log(int priority, String tag, String message, Throwable t) {
if (BuildConfig.DEBUG) {
super.log(priority, tag, message, t);
}
doSomethingElse();
}
}https://stackoverflow.com/questions/55602218
复制相似问题