From 60fde3e5055390b95dcfff2252f4df84c4942822 Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期三, 03 十二月 2025 15:28:49 +0800
Subject: [PATCH] 1.日志 文件h264_xxxx.log 保留3天。超过3天进行删除
---
app/src/main/java/com/anyun/h264/FileLoggingTree.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/app/src/main/java/com/anyun/h264/FileLoggingTree.java b/app/src/main/java/com/anyun/h264/FileLoggingTree.java
index d133697..685be20 100644
--- a/app/src/main/java/com/anyun/h264/FileLoggingTree.java
+++ b/app/src/main/java/com/anyun/h264/FileLoggingTree.java
@@ -5,11 +5,13 @@
import timber.log.Timber;
import java.io.File;
+import java.io.FileFilter;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
+import java.util.concurrent.TimeUnit;
/**
* Timber Tree implementation that logs to files.
@@ -19,6 +21,8 @@
private static final String LOG_DIR = "nvlog";
private static final String LOG_PREFIX = "h264_";
private static final String LOG_SUFFIX = ".log";
+ // 鏃ュ織鏂囦欢淇濈暀澶╂暟
+ private static final int LOG_RETENTION_DAYS = 3;
private static final String DATE_FORMAT = "yyyyMMdd";
private static final String TIMESTAMP_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
@@ -36,6 +40,8 @@
// Check if we need to update the log file (new day)
if (!logFileName.equals(currentLogFile)) {
currentLogFile = logFileName;
+ // 鏂扮殑涓�澶╋紝椤轰究娓呯悊杩囨湡鏃ュ織鏂囦欢
+ cleanupExpiredLogFiles(LOG_RETENTION_DAYS);
}
File logFile = getLogFile(logFileName);
@@ -88,6 +94,50 @@
} catch (IOException e) {
Log.e("FileLoggingTree", "Error getting log file", e);
return null;
+ }
+ }
+
+ /**
+ * 娓呯悊瓒呭嚭淇濈暀澶╂暟鐨勬棩蹇楁枃浠�
+ */
+ private void cleanupExpiredLogFiles(int retentionDays) {
+ if (retentionDays <= 0) {
+ return;
+ }
+
+ try {
+ File logDir = new File(Environment.getExternalStorageDirectory(), LOG_DIR);
+ if (!logDir.exists() || !logDir.isDirectory()) {
+ return;
+ }
+
+ long retentionMillis = TimeUnit.DAYS.toMillis(Math.max(1, retentionDays));
+ long cutoffTime = System.currentTimeMillis() - retentionMillis;
+
+ File[] files = logDir.listFiles(new FileFilter() {
+ @Override
+ public boolean accept(File pathname) {
+ String name = pathname.getName();
+ return name.startsWith(LOG_PREFIX) && name.endsWith(LOG_SUFFIX);
+ }
+ });
+
+ if (files == null || files.length == 0) {
+ return;
+ }
+
+ for (File file : files) {
+ if (file.lastModified() < cutoffTime) {
+ boolean deleted = file.delete();
+ if (deleted) {
+ Log.i("FileLoggingTree", "Deleted expired log file: " + file.getAbsolutePath());
+ } else {
+ Log.w("FileLoggingTree", "Failed to delete expired log file: " + file.getAbsolutePath());
+ }
+ }
+ }
+ } catch (Exception e) {
+ Log.e("FileLoggingTree", "Error cleaning up expired log files", e);
}
}
@@ -144,3 +194,4 @@
}
}
+
--
Gitblit v1.8.0