From c10f2efcb71c5b7b8f990153a8ceb591571eaf4a Mon Sep 17 00:00:00 2001 From: marcus Date: Mon, 27 Oct 2008 13:55:06 +0000 Subject: Refs #215: System hook for archiving log. Cron yet to be added. git-svn-id: https://code.elgg.org/elgg/trunk@2314 36083f99-b078-4883-b0ff-0f9b5a30f544 --- engine/lib/system_log.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'engine/lib') diff --git a/engine/lib/system_log.php b/engine/lib/system_log.php index 4e862791d..f0aa14522 100644 --- a/engine/lib/system_log.php +++ b/engine/lib/system_log.php @@ -232,6 +232,30 @@ } } + /** + * This function creates an archive copy of the system log. + */ + function archive_log() + { + global $CONFIG; + + $now = time(); // Take a snapshot of now + + // create table + if (!update_data("CREATE TABLE {$CONFIG->dbprefix}system_log_$now as SELECT * from {$CONFIG->dbprefix}system_log WHERE time_created<=$now")) + return false; + + // alter table to engine + if (!update_data("ALTER TABLE {$CONFIG->dbprefix}system_log_$now engine=archive")) + return false; + + // delete + if (!delete_data("DELETE from {$CONFIG->dbprefix}system_log WHERE id in (select id from {$CONFIG->dbprefix}system_log_$now)")) // Don't delete on time since we are running in a concurrent environment + return false; + + return true; + } + /** * System log listener. * This function listens to all events in the system and logs anything appropriate. -- cgit v1.2.3