- Модуль: mail
- Путь к файлу: ~/bitrix/modules/mail/classes/general/smtp.php
- Класс: CSMTPServer
- Вызов: CSMTPServer::WriteToLog
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 ($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 = 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 logn---------------------------------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";
}