Skip to content

Commit a85bd03

Browse files
Fixes #3920 Send Log File" does not collect updated logs (#3958)
* Fixes #3920 * Delete stale log files post the zip file's size reaches 1000kb * Fixes #3920 * Delete stale log files (if the size reaches more than 1000kb) on App startup to make room for fresh logs
1 parent 7c5fafa commit a85bd03

File tree

1 file changed

+34
-12
lines changed

1 file changed

+34
-12
lines changed

app/src/main/java/fr/free/nrw/commons/CommonsApplication.java

+34-12
Original file line numberDiff line numberDiff line change
@@ -188,20 +188,42 @@ public void onCreate() {
188188
*
189189
*/
190190
private void initTimber() {
191-
boolean isBeta = ConfigUtils.isBetaFlavour();
192-
String logFileName = isBeta ? "CommonsBetaAppLogs" : "CommonsAppLogs";
193-
String logDirectory = LogUtils.getLogDirectory();
194-
FileLoggingTree tree = new FileLoggingTree(
195-
Log.VERBOSE,
196-
logFileName,
197-
logDirectory,
198-
1000,
199-
getFileLoggingThreadPool());
200-
201-
Timber.plant(tree);
202-
Timber.plant(new Timber.DebugTree());
191+
boolean isBeta = ConfigUtils.isBetaFlavour();
192+
String logFileName =
193+
isBeta ? "CommonsBetaAppLogs" : "CommonsAppLogs";
194+
String logDirectory = LogUtils.getLogDirectory();
195+
//Delete stale logs if they have exceeded the specified size
196+
deleteStaleLogs(logFileName, logDirectory);
197+
198+
FileLoggingTree tree = new FileLoggingTree(
199+
Log.VERBOSE,
200+
logFileName,
201+
logDirectory,
202+
1000,
203+
getFileLoggingThreadPool());
204+
205+
Timber.plant(tree);
206+
Timber.plant(new Timber.DebugTree());
203207
}
204208

209+
/**
210+
* Deletes the logs zip file at the specified directory and file locations specified in the
211+
* params
212+
*
213+
* @param logFileName
214+
* @param logDirectory
215+
*/
216+
private void deleteStaleLogs(String logFileName, String logDirectory) {
217+
try {
218+
File file = new File(logDirectory + "/zip/" + logFileName + ".zip");
219+
if (file.exists() && file.getTotalSpace() > 1000000) {// In Kbs
220+
file.delete();
221+
}
222+
} catch (Exception e) {
223+
Timber.e(e);
224+
}
225+
}
226+
205227
public static boolean isRoboUnitTest() {
206228
return "robolectric".equals(Build.FINGERPRINT);
207229
}

0 commit comments

Comments
 (0)