android自定义LogUtil
时间: 2023-09-14 07:12:11 浏览: 116
在Android开发中,我们经常会使用Log来打印日志。但是,Android原生的Log输出信息有限,为了更好地输出和管理日志,我们可以自定义LogUtil。
下面是一个简单的LogUtil类,可以自定义输出日志级别、输出信息格式等:
```java
public class LogUtil {
private static final String TAG = "LogUtil";
private static boolean sDebug = true; // 是否打印日志
private static boolean sSaveLog = false; // 是否保存日志到文件
private static String sLogPath = Environment.getExternalStorageDirectory().getPath() + "/log.txt"; // 日志保存路径
public static void setDebug(boolean debug) {
sDebug = debug;
}
public static void setSaveLog(boolean saveLog) {
sSaveLog = saveLog;
}
public static void setLogPath(String logPath) {
sLogPath = logPath;
}
public static void v(String msg) {
if (sDebug) {
Log.v(TAG, msg);
}
saveLogToFile("V", TAG, msg);
}
public static void d(String msg) {
if (sDebug) {
Log.d(TAG, msg);
}
saveLogToFile("D", TAG, msg);
}
public static void i(String msg) {
if (sDebug) {
Log.i(TAG, msg);
}
saveLogToFile("I", TAG, msg);
}
public static void w(String msg) {
if (sDebug) {
Log.w(TAG, msg);
}
saveLogToFile("W", TAG, msg);
}
public static void e(String msg) {
if (sDebug) {
Log.e(TAG, msg);
}
saveLogToFile("E", TAG, msg);
}
private static void saveLogToFile(String level, String tag, String msg) {
if (sSaveLog) {
try {
File file = new File(sLogPath);
FileWriter fw = new FileWriter(file, true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("[" + level + "] " + tag + ": " + msg + "\n");
bw.close();
fw.close();
} catch (IOException e) {
Log.e(TAG, "saveLogToFile: " + e.getMessage());
}
}
}
}
```
使用方法:
```java
LogUtil.setDebug(true); // 设置是否打印日志
LogUtil.setSaveLog(true); // 设置是否保存日志到文件
LogUtil.setLogPath("/sdcard/log.txt"); // 设置日志保存路径
LogUtil.v("verbose log");
LogUtil.d("debug log");
LogUtil.i("info log");
LogUtil.w("warning log");
LogUtil.e("error log");
```
以上就是一个简单的LogUtil类的实现,可以根据自己的需求进行修改和扩展。
阅读全文