}
}
我们使用HandlerThread来处理这个任务。HandlerThread是一个可以使用handler的Thread。当我们把消息保存到消息队列中去之后会在线程中去处理,又能保证不会产生很多线程。其实这里也可以使用instentservice实现,这个服务适合量大而不太耗时的任务。
最后在一个方法中统一打印和保存即可:
private void logPrint(int logLevel, Object msg) {
if (isDebug) {
String name = getFunctionName();
if (saveLogStrategy != null) {
saveLogStrategy.log(Log.ERROR, customTag, name + " - " + msg);
}
Log.println(logLevel, customTag, name + " - " + msg);
}
}
自定义的log策略还是比较简单,主要就是这个思想:打印日志信息详细,保存要采用队列的形式。一下是全部代码:
public class Logger {
public final static String tag = “”;
private static SaveLogStrategy saveLogStrategy;
private final static boolean logFlag = true;
private static Logger logger;
private int logLevel = Log.VERBOSE;
private static boolean isDebug = BuildCo