Ejemplo n.º 1
0
 function WriteToLog($txt, $level)
 {
     $this->logLevel = IntVal(COption::GetOptionString("mail", "smtp_log_level", "4"));
     if ($this->logLevel < $level) {
         return;
     }
     if (MicroTime(true) - $this->startPeriodTimeTruncate > 600) {
         if ($this->logFile) {
             FClose($this->logFile);
         }
         $this->logFile = null;
         if (File_Exists($_SERVER["DOCUMENT_ROOT"] . $this->logFileName)) {
             $logSize = @FileSize($_SERVER["DOCUMENT_ROOT"] . $this->logFileName);
             $logSize = IntVal($logSize);
             if ($logSize > $this->logMaxSize) {
                 if (($fp = @FOpen($_SERVER["DOCUMENT_ROOT"] . $this->logFileName, "rb")) && ($fp1 = @FOpen($_SERVER["DOCUMENT_ROOT"] . $this->logFileName . "_", "wb"))) {
                     $iSeekLen = IntVal($logSize - $this->logMaxSize / 2.0);
                     FSeek($fp, $iSeekLen);
                     @FWrite($fp1, "Truncated " . Date("Y-m-d H:i:s") . "\n---------------------------------\n");
                     do {
                         $data = FRead($fp, 8192);
                         if (StrLen($data) == 0) {
                             break;
                         }
                         @FWrite($fp1, $data);
                     } while (true);
                     @FClose($fp);
                     @FClose($fp1);
                     @Copy($_SERVER["DOCUMENT_ROOT"] . $this->logFileName . "_", $_SERVER["DOCUMENT_ROOT"] . $this->logFileName);
                     @UnLink($_SERVER["DOCUMENT_ROOT"] . $this->logFileName . "_");
                 }
             }
             ClearStatCache();
         }
         $this->startPeriodTimeTruncate = MicroTime(true);
     }
     if (!$this->logFile || $this->logFile == null) {
         $this->logFile = FOpen($_SERVER["DOCUMENT_ROOT"] . $this->logFileName, "a");
     }
     if (!$this->logFile) {
         echo "Can't write to log\n---------------------------------\n";
         return;
     }
     FWrite($this->logFile, Date("Y-m-d H:i:s") . "\t" . trim($txt) . "\n");
     FFlush($this->logFile);
     //if ($level > 4)
     echo trim($txt) . "\n---------------------------------\n";
 }
 function __ReadDescription()
 {
     FSeek($this->serverLogTmpHandle, 0);
     $line = FGets($this->serverLogTmpHandle, 4096);
     $line = Trim($line);
     $arLine = Explode("|", $line);
     $this->descrTs = $arLine[0];
     $this->descrRegion = $arLine[1];
     $exts = $arLine[2];
     $this->descrCollectedExtensions = Explode(",", $exts);
     FSeek($this->serverLogTmpHandle, -1);
 }