purgeLogs static method

Future<void> purgeLogs(
  1. int hoursToKeep
)

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");
  }
}