Exemplo n.º 1
0
 protected function actionRotate($params)
 {
     $this->requireCli();
     $findParams = \GO\Base\Db\FindParams::newInstance();
     $findParams->getCriteria()->addCondition('ctime', \GO\Base\Util\Date::date_add(time(), -\GO::config()->log_max_days), '<');
     $stmt = \GO\Log\Model\Log::model()->find($findParams);
     $count = $stmt->rowCount();
     echo "Dumping " . $count . " records to CSV file\n";
     if ($count) {
         $logPath = '/var/log/groupoffice/' . \GO::config()->id . '.csv';
         $csvLogFile = new \GO\Base\Fs\CsvFile($logPath);
         $csvLogFile->parent()->create();
         while ($log = $stmt->fetch()) {
             if (!$csvLogFile->putRecord(array_values($log->getAttributes('formatted')))) {
                 throw new \Exception("Could not write to CSV log file: " . $csvLogFile->path());
             }
             $log->delete();
         }
     }
     echo "Done\n";
 }