Android开发:日志功能备忘
临时记一下吧,以后就直接复制粘贴这里面的好了。
实现一个日志记录程序的运行状态,并且带上时间信息,可以写一个类灵活调用。
MyLog.java
package com.example.networkaccessrestrictions;
import static android.content.ContentValues.TAG;
import android.content.Context;
import android.util.Log;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class MyLog {
private static final String LOG_FILE_NAME = "service_log.txt";//写入日志的文件名
private Context context;
// 构造函数,接收 Context
public MyLog(Context context) {
this.context = context;
}
public void writeLog(String message) {
File logFile = new File(context.getFilesDir(), LOG_FILE_NAME); // 使用内部存储
// 获取当前日期
LocalDateTime currentDateTime = LocalDateTime.now();//注意这里用到的是currentDateTime,不是currentDate也不是currentDateTime
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 格式化当前日期
String formattedDateTime = currentDateTime.format(formatter);
// 输出格式化后的日期
//System.out.println("当前日期: " + formattedDateTime);
try (FileWriter fileWriter = new FileWriter(logFile, true); // 以追加模式打开文件
PrintWriter printWriter = new PrintWriter(fileWriter)) {
printWriter.println(formattedDateTime + ":" + message); // 写入时间戳和消息
} catch (IOException e) {
Log.e(TAG, "Error writing to log file", e);
}
}
}
在其他代码里把活动写入日志时只需要
MyLog mylog=new MyLog(this);
mylog.writeLog("阿巴阿巴阿巴阿巴阿巴");
即可。
那么要上哪找这个日志文件呢?
直接去/data/data/your.package.name/files/
目录下找日志就完事了。