• Модуль: xmpp
  • Путь к файлу: ~/bitrix/modules/xmpp/classes/server.php
  • Класс: CXMPPServer
  • Вызов: CXMPPServer::WriteToLog
public function WriteToLog($txt, $level)
{
	if ($this->logLevel > $level)
		return;

	if (time() - $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 ($data == '')
							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 = time();
	}

	if (!$this->logFile || $this->logFile == null)
		$this->logFile = fopen($_SERVER["DOCUMENT_ROOT"].$this->logFileName, "a");

	if (!$this->logFile)
	{
		echo "Can't write to logn---------------------------------n";
		return;
	}

	fwrite($this->logFile, date("Y-m-d H:i:s")."n".$txt."n---------------------------------n");
	fflush($this->logFile);

	if ($level > 4)
		echo $txt."n---------------------------------n";
}