コード例 #1
0
ファイル: Maintenance.php プロジェクト: cannonerd/pimcore
 public function checkErrorLogsDb()
 {
     $conf = Config::getSystemConfig();
     $config = $conf->applicationlog;
     if ($config->mail_notification->send_log_summary) {
         $receivers = preg_split("/,|;/", $config->mail_notification->mail_receiver);
         array_walk($receivers, function (&$value) {
             $value = trim($value);
         });
         $logLevel = (int) $config->mail_notification->filter_priority;
         $db = \Pimcore\Db::get()->getResource();
         $query = "SELECT * FROM " . \Pimcore\Log\Handler\ApplicationLoggerDb::TABLE_NAME . " WHERE maintenanceChecked IS NULL AND priority <= {$logLevel} order by id desc";
         $rows = $db->fetchAll($query);
         $limit = 100;
         $rowsProcessed = 0;
         $rowCount = count($rows);
         if ($rowCount) {
             while ($rowsProcessed < $rowCount) {
                 $entries = array();
                 if ($rowCount <= $limit) {
                     $entries = $rows;
                 } else {
                     for ($i = $rowsProcessed; $i < $rowCount && count($entries) < $limit; $i++) {
                         $entries[] = $rows[$i];
                     }
                 }
                 $rowsProcessed += count($entries);
                 $html = var_export($entries, true);
                 $html = "<pre>{$html}</pre>";
                 $mail = new \Pimcore\Mail();
                 $mail->setIgnoreDebugMode(true);
                 $mail->setBodyHtml($html);
                 $mail->addTo($receivers);
                 $mail->setSubject('Error Log ' . \Pimcore_Tool::getHostUrl());
                 $mail->send();
             }
         }
         $db->query("UPDATE " . \Pimcore\Log\Handler\ApplicationLoggerDb::TABLE_NAME . " set maintenanceChecked = 1");
     }
 }
コード例 #2
0
ファイル: Maintenance.php プロジェクト: pimcore/pimcore
 public function checkErrorLogsDb()
 {
     $db = \Pimcore\Db::get();
     $conf = Config::getSystemConfig();
     $config = $conf->applicationlog;
     if ($config->mail_notification->send_log_summary) {
         $receivers = preg_split("/,|;/", $config->mail_notification->mail_receiver);
         array_walk($receivers, function (&$value) {
             $value = trim($value);
         });
         $logLevel = (int) $config->mail_notification->filter_priority;
         $query = "SELECT * FROM " . \Pimcore\Log\Handler\ApplicationLoggerDb::TABLE_NAME . " WHERE maintenanceChecked IS NULL AND priority <= {$logLevel} order by id desc";
         $rows = $db->fetchAll($query);
         $limit = 100;
         $rowsProcessed = 0;
         $rowCount = count($rows);
         if ($rowCount) {
             while ($rowsProcessed < $rowCount) {
                 $entries = [];
                 if ($rowCount <= $limit) {
                     $entries = $rows;
                 } else {
                     for ($i = $rowsProcessed; $i < $rowCount && count($entries) < $limit; $i++) {
                         $entries[] = $rows[$i];
                     }
                 }
                 $rowsProcessed += count($entries);
                 $html = var_export($entries, true);
                 $html = "<pre>{$html}</pre>";
                 $mail = new \Pimcore\Mail();
                 $mail->setIgnoreDebugMode(true);
                 $mail->setBodyHtml($html);
                 $mail->addTo($receivers);
                 $mail->setSubject('Error Log ' . \Pimcore\Tool::getHostUrl());
                 $mail->send();
             }
         }
     }
     // flag them as checked, regardless if email notifications are enabled or not
     // otherwise, when activating email notifications, you'll receive all log-messages from the past and not
     // since the point when you enabled the notifications
     $db->query("UPDATE " . \Pimcore\Log\Handler\ApplicationLoggerDb::TABLE_NAME . " set maintenanceChecked = 1");
 }