Android 开发中,很多文件都需要打印日志,如果每次都要导入包android.util.Log,定义一个TAG, 再写Log.d/ Log.i, 有些麻烦。
所以最好在一个项目中,有一个日志打印类,专门负责打印日志。 哪些文件需要打印日志,则可以创建这个类的实例对象,并把类名/类对象 传递过去(作为TAG)。
例如,定义一个Logger类, 提供构造器, 参数类型为 String 或者 类对象(Class<?>) ; 然后再提供对应方法去调用 android官方Log的API
import android.util.Log;
public class Logger {
private String TAG;
public Logger(String tag) {
TAG = tag;
}
public Logger(Class<?> clazz){
TAG = clazz.getSimpleName();
}
// //通过静态方法创建对象
// public static Logger getLogger(String tag) {
// TAG = tag;
// return new Logger();
// }
//
// public static Logger getLogger(Class<?> clazz) {
// return getLogger(clazz.getSimpleName());
// }
public void debug(String message) {
Log.d(TAG, message);
}
public void info(String message) {
Log.i(TAG, message);
}
public void error(String message) {
Log.e(TAG, message);
}
public void error(String message, Throwable throwable) {
Log.e(TAG, message, throwable);
}
public void warning(String message) {
Log.w(TAG, message);
}
}
则调用方可以使用以下方法创建Logger的实例对象:
private static final Logger log = new Logger(MainActivity.class);
或者:
private static final Logger log = new Logger("MainActivity");
然后通过调用它的方法打印日志
log.debug("onCreate using Logger to print log");
输出如:
2021-01-01 10:48:00.630 D/MainActivity: onCreate using Logger to print log