Pimcore\Log\Maintenance::archiveLogEntries PHP Метод

archiveLogEntries() публичный Метод

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