function writeFile(&$logFileData, &$string, $verbosityLevel, $alwaysLog = false) { $enabled = eZDebug::isDebugEnabled(); if (!$alwaysLog and !$enabled) { return; } if (!$alwaysLog and !$this->isLogFileEnabled($verbosityLevel)) { return; } $oldHandleType = eZDebug::setHandleType(self::HANDLE_TO_PHP); $logDir = $logFileData[0]; $logName = $logFileData[1]; $fileName = $logDir . $logName; if (!file_exists($logDir)) { //include_once( 'lib/ezfile/classes/ezdir.php' ); eZDir::mkdir($logDir, 0775, true); } $oldumask = @umask(0); $fileExisted = @file_exists($fileName); if ($fileExisted and filesize($fileName) > eZDebug::maxLogSize()) { if (eZDebug::rotateLog($fileName)) { $fileExisted = false; } } $logFile = @fopen($fileName, "a"); if ($logFile) { $time = strftime("%b %d %Y %H:%M:%S", strtotime("now")); $ip = eZSys::serverVariable('REMOTE_ADDR', true); if (!$ip) { $ip = eZSys::serverVariable('HOSTNAME', true); } $notice = "[ " . $time . " ] [" . $ip . "] " . $string . "\n"; @fwrite($logFile, $notice); @fclose($logFile); if (!$fileExisted) { @chmod($fileName, 0664); } @umask($oldumask); } else { @umask($oldumask); $logEnabled = $this->isLogFileEnabled($verbosityLevel); $this->setLogFileEnabled(false, $verbosityLevel); if ($verbosityLevel != self::LEVEL_ERROR or $logEnabled) { eZDebug::setHandleType($oldHandleType); $this->writeError("Cannot open log file '{$fileName}' for writing\n" . "The web server must be allowed to modify the file.\n" . "File logging for '{$fileName}' is disabled.", 'eZDebug::writeFile'); } } eZDebug::setHandleType($oldHandleType); }
function writeFile(&$logFileData, &$string, $verbosityLevel, $alwaysLog = false) { $enabled = eZDebug::isDebugEnabled(); if (!$alwaysLog and !$enabled) { return; } if (!$alwaysLog and !$this->isLogFileEnabled($verbosityLevel)) { return; } $oldHandleType = eZDebug::setHandleType(self::HANDLE_TO_PHP); $logDir = $logFileData[0]; $logName = $logFileData[1]; $fileName = $logDir . $logName; if (!file_exists($logDir)) { eZDir::mkdir($logDir, false, true); } $oldumask = @umask(0); clearstatcache(true, $fileName); $fileExisted = file_exists($fileName); if ($fileExisted and filesize($fileName) > eZDebug::maxLogSize()) { if (eZDebug::rotateLog($fileName)) { $fileExisted = false; } } $logFile = @fopen($fileName, "a"); if ($logFile) { $time = strftime("%b %d %Y %H:%M:%S", strtotime("now")); $ip = eZSys::clientIP(); if (!$ip) { $ip = eZSys::serverVariable('HOSTNAME', true); } $notice = "[ " . $time . " ] [" . $ip . "] " . $string . "\n"; @fwrite($logFile, $notice); @fclose($logFile); if (!$fileExisted) { $ini = eZINI::instance(); $permissions = octdec($ini->variable('FileSettings', 'LogFilePermissions')); @chmod($fileName, $permissions); } @umask($oldumask); } else { @umask($oldumask); $logEnabled = $this->isLogFileEnabled($verbosityLevel); $this->setLogFileEnabled(false, $verbosityLevel); if ($verbosityLevel != self::LEVEL_ERROR or $logEnabled) { eZDebug::setHandleType($oldHandleType); $this->writeError("Cannot open log file '{$fileName}' for writing\n" . "The web server must be allowed to modify the file.\n" . "File logging for '{$fileName}' is disabled.", 'eZDebug::writeFile'); } } eZDebug::setHandleType($oldHandleType); }
<?php /** * Rotate logs of ws calls: since we store them in the per-sa dir, eZ will not do it on its own. * * We are very nice people, and allow a custom max file size to be specified * instead of relying on eZ default one, and a number of rotated files to be kept, too! * * @author G. Giunta * @copyright (C) 2009-2016 G. Giunta */ $ini = eZINI::instance('wsproviders.ini'); $maxFileSize = $ini->variable('GeneralSettings', 'MaxLogSize'); if ($maxFileSize <= 0) { // in case ini setting is missing $maxFileSize = eZDebug::maxLogSize(); } if ($ini->hasVariable('GeneralSettings', 'MaxLogrotateFiles') && $ini->variable('GeneralSettings', 'MaxLogrotateFiles') > 0) { $defaultrotate = eZDebug::maxLogrotateFiles(); eZDebug::setLogrotateFiles($ini->variable('GeneralSettings', 'MaxLogrotateFiles')); } $varDir = eZSys::varDirectory(); $logDir = 'log'; $logName = 'webservices.log'; $fileName = $varDir . '/' . $logDir . '/' . $logName; if (file_exists($fileName) && filesize($fileName) > $maxFileSize) { eZDebug::rotateLog($fileName); } if (isset($defaultrotate)) { eZDebug::setLogrotateFiles($defaultrotate); }