N°2793 log rotation test : fix timezone issues

This commit is contained in:
odain
2020-03-04 11:43:26 +01:00
committed by Pierre Goiffon
parent 6675d7d42a
commit c06f8e9a98
3 changed files with 46 additions and 13 deletions

View File

@@ -128,6 +128,10 @@ abstract class RotatingLogFileNameBuilder implements iLogFileNameBuilder
*/
public function CheckAndRotateLogFile()
{
$oConfig = utils::GetConfig();
$sItopTimeZone = $oConfig->Get('timezone');
$timezone = new DateTimeZone($sItopTimeZone);
if ($this->GetLastModifiedDateForFile() === null)
{
if (!$this->IsLogFileExists())
@@ -140,10 +144,12 @@ abstract class RotatingLogFileNameBuilder implements iLogFileNameBuilder
{
return;
}
$this->SetLastModifiedDateForFile(DateTime::createFromFormat('U', $iLogDateLastModifiedTimeStamp));
$oDateTime = DateTime::createFromFormat('U', $iLogDateLastModifiedTimeStamp);
$oDateTime->setTimezone($timezone);
$this->SetLastModifiedDateForFile($oDateTime);
}
$oNow = new DateTime();
$oNow = new DateTime('now', $timezone);
$bShouldRotate = $this->ShouldRotate($this->GetLastModifiedDateForFile(), $oNow);
if (!$bShouldRotate)
{
@@ -276,10 +282,22 @@ class DailyRotatingLogFileNameBuilder extends RotatingLogFileNameBuilder
*/
public function ShouldRotate($oLogFileLastModified, $oNow)
{
$oInterval = $oNow->diff($oLogFileLastModified);
$iDaysDiff = $oInterval->d;
$iLogYear = $oLogFileLastModified->format('Y');
$iLogDay = $oLogFileLastModified->format('z');
$iNowYear = $oNow->format('Y');
$iNowDay = $oNow->format('z');
return $iDaysDiff > 0;
if ($iLogYear !== $iNowYear)
{
return true;
}
if ($iLogDay !== $iNowDay)
{
return true;
}
return false;
}
/**