public function archiveLogEntries()
{
$conf = Config::getSystemConfig();
$config = $conf->applicationlog;
$db = \Pimcore\Db::get();
$date = new \DateTime("now");
$tablename = \Pimcore\Log\Handler\ApplicationLoggerDb::TABLE_ARCHIVE_PREFIX . "_" . $date->format("m") . '_' . $date->format("Y");
if ($config->archive_alternative_database) {
$tablename = $config->archive_alternative_database . '.' . $tablename;
}
$archive_treshold = intval($config->archive_treshold) ?: 30;
$db->query("CREATE TABLE IF NOT EXISTS " . $tablename . " (\n id BIGINT(20) NOT NULL,\n `pid` INT(11) NULL DEFAULT NULL,\n `timestamp` DATETIME NOT NULL,\n message VARCHAR(1024),\n `priority` ENUM('emergency','alert','critical','error','warning','notice','info','debug') DEFAULT NULL,\n fileobject VARCHAR(1024),\n info VARCHAR(1024),\n component VARCHAR(255),\n source VARCHAR(255) NULL DEFAULT NULL,\n relatedobject BIGINT(20),\n relatedobjecttype ENUM('object', 'document', 'asset'),\n maintenanceChecked TINYINT(4)\n ) ENGINE = ARCHIVE ROW_FORMAT = DEFAULT;");
$timestamp = time();
$db->query("INSERT INTO " . $tablename . " SELECT * FROM " . \Pimcore\Log\Handler\ApplicationLoggerDb::TABLE_NAME . " WHERE `timestamp` < DATE_SUB(FROM_UNIXTIME(" . $timestamp . "), INTERVAL " . $archive_treshold . " DAY);");
$db->query("DELETE FROM " . \Pimcore\Log\Handler\ApplicationLoggerDb::TABLE_NAME . " WHERE `timestamp` < DATE_SUB(FROM_UNIXTIME(" . $timestamp . "), INTERVAL " . $archive_treshold . " DAY);");
}