purgeLogs static method
Implementation
static Future<void> purgeLogs(int hoursToKeep) async {
DbTransaction mysqlTransaction =
await DataBaseHelper.getDbTransaction(C_DATABASE_NAME);
AbstractDatabase db = mysqlTransaction.getConnection();
print("Purging logs in " + C_DATABASE_NAME + " mysql");
DateTime cal = DateTime.now();
cal.add(Duration(hours: hoursToKeep * -1));
int unixTime = cal.millisecondsSinceEpoch;
String sql;
// ---------------------------------------------------------------------- PROPERTY
try {
sql = " DELETE " + " FROM logging_event_property ";
await db.updateQuery(sql);
} on SqlException catch (e) {
print("$e");
}
// ---------------------------------------------------------------------- EXCEPTION
try {
sql = " DELETE " +
" FROM logging_event_exception " +
" WHERE event_id in " +
" ( SELECT event_id " +
" FROM logging_event " +
" WHERE timestmp <" +
unixTime.toString() +
" )";
await db.updateQuery(sql);
} on SqlException catch (e) {
print("$e");
}
// ---------------------------------------------------------------------- EVENT
try {
sql = " DELETE " +
" FROM logging_event " +
" WHERE timestmp <= " +
unixTime.toString();
await db.updateQuery(sql);
} on SqlException catch (e) {
print("$e");
}
try {
if (db != null) await db.close();
} on SqlException catch (e) {
print("$e");
}
}