예제 #1
0
 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);
 }
예제 #2
0
 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);
 }
예제 #3
0
<?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);
}