Spec-Zone.ru › Yii 1.1

CFileLogRoute

Пакет system.logging
Наследование class CFileLogRoute » CLogRoute » CComponent
С момента 1.0
Исходный код framework/logging/CFileLogRoute.php
CFileLogRoute записывает сообщения журнала в файлы.

Файлы журнала хранятся в папке logPath, а имя файла задается свойством logFile. Если размер файла журнала превышает maxFileSize (в килобайтах), выполняется ротация, которая переименовывает текущий файл журнала, добавляя к имени суффикс '.1'. Все существующие файлы журнала перемещаются назад на одну позицию, т.е. '.2' в '.3', '.1' в '.2'. Свойство maxLogFiles определяет, сколько файлов нужно сохранить. Если свойство rotateByCopy равно true, основной файл журнала будет ротироваться путем копирования и обрезки (для большей совместимости с просмотрщиками логов), в противном случае он будет ротироваться путем переименования.

Свойства

Свойство Тип Описание Определено
categories mixed массив категорий или список категорий, разделенных запятыми или пробелами. CLogRoute
enabled boolean включить ли этот маршрут логов. CLogRoute
except mixed массив категорий или список категорий, разделенных запятыми или пробелами, которые следует ИСКЛЮЧИТЬ из логов. CLogRoute
filter mixed дополнительный фильтр (например, CLogFilter), который можно применить к сообщениям журнала. CLogRoute
levels string список уровней, разделенных запятыми или пробелами. CLogRoute
logFile string имя файла журнала. CFileLogRoute
logPath string каталог для хранения файлов журнала. CFileLogRoute
logs array журналы, собранные до сих пор этим маршрутом логов. CLogRoute
maxFileSize integer максимальный размер файла журнала в килобайтах (КБ). CFileLogRoute
maxLogFiles integer количество файлов, используемых для ротации. CFileLogRoute
rotateByCopy boolean Выполнять ли ротацию основного файла журнала путем копирования и обрезки, что более совместимо с просмотрщиками логов. CFileLogRoute

Публичные методы

Метод Описание Определено
__call() Вызывает метод, который не является методом класса. CComponent
__get() Возвращает значение свойства, список обработчиков событий или поведение по его имени. CComponent
__isset() Проверяет, является ли значение свойства null. CComponent
__set() Устанавливает значение свойства компонента. CComponent
__unset() Устанавливает свойство компонента в null. CComponent
asa() Возвращает объект поведения по имени. CComponent
attachBehavior() Присоединяет поведение к компоненту. CComponent
attachBehaviors() Присоединяет список поведений к компоненту. CComponent
attachEventHandler() Присоединяет обработчик событий к событию. CComponent
canGetProperty() Определяет, можно ли считать свойство. CComponent
canSetProperty() Определяет, можно ли установить свойство. CComponent
collectLogs() Извлекает отфильтрованные сообщения журнала из логгера для дальнейшей обработки. CLogRoute
detachBehavior() Отсоединяет поведение от компонента. CComponent
detachBehaviors() Отсоединяет все поведения от компонента. CComponent
detachEventHandler() Отсоединяет существующий обработчик событий. CComponent
disableBehavior() Отключает присоединенное поведение. CComponent
disableBehaviors() Отключает все присоединенные поведения к данному компоненту. CComponent
enableBehavior() Включает присоединенное поведение. CComponent
enableBehaviors() Включает все присоединенные к этому компоненту поведения. CComponent
evaluateExpression() Вычисляет выражение PHP или обратный вызов в контексте этого компонента. CComponent
getEventHandlers() Возвращает список присоединенных обработчиков событий для события. CComponent
getLogFile() Возвращает имя файла журнала. По умолчанию «application.log». CFileLogRoute
getLogPath() Возвращает каталог для хранения файлов журнала. По умолчанию путь к приложению. CFileLogRoute
getMaxFileSize() Возвращает максимальный размер файла журнала в килобайтах (КБ). По умолчанию 1024 (1 МБ). CFileLogRoute
getMaxLogFiles() Возвращает количество файлов, используемых для ротации. По умолчанию 5. CFileLogRoute
hasEvent() Определяет, определено ли событие. CComponent
hasEventHandler() Проверяет, есть ли присоединенные обработчики к указанному событию. CComponent
hasProperty() Определяет, определено ли свойство. CComponent
init() Инициализирует маршрут. CFileLogRoute
raiseEvent() Вызывает событие. CComponent
setLogFile() Устанавливает имя файла журнала. CFileLogRoute
setLogPath() Устанавливает каталог для хранения файлов журнала. CFileLogRoute
setMaxFileSize() Устанавливает максимальный размер файла журнала в килобайтах (КБ). CFileLogRoute
setMaxLogFiles() Устанавливает количество файлов, используемых для ротации. CFileLogRoute

Защищённые методы

Метод Описание Определено в
formatLogMessage() Форматирует сообщение журнала с различными полями. CLogRoute
processLogs() Сохраняет сообщения журнала в файлы. CFileLogRoute
rotateFiles() Производит ротацию файлов журнала. CFileLogRoute

Подробности свойств

logFile свойство

public string getLogFile()
public void setLogFile(string $value)

Имя файла журнала. По умолчанию 'application.log'.

logPath свойство

public string getLogPath()
public void setLogPath(string $value)

Директория для хранения файлов журнала. По умолчанию — путь к приложению.

maxFileSize свойство

public integer getMaxFileSize()
public void setMaxFileSize(integer $value)

Максимальный размер файла журнала в килобайтах (КБ). По умолчанию 1024 (1 МБ).

maxLogFiles свойство

public integer getMaxLogFiles()
public void setMaxLogFiles(integer $value)

Количество файлов, используемых для ротации. По умолчанию 5.

rotateByCopy свойство (доступно с версии v1.1.14)

public boolean $rotateByCopy;

Выполнять ротацию основного лога копированием и обнулением, что совместимо с программами отображения логов. По умолчанию false.

Подробности методов

getLogFile() метод

public string getLogFile()
{return} string Имя файла журнала. По умолчанию 'application.log'.
Исходный код: framework/logging/CFileLogRoute.php#93 (показать)
public function getLogFile()
{
    return 
$this->_logFile;
}

getLogPath() метод

public string getLogPath()
{return} string Директория для хранения файлов журнала. По умолчанию — путь к приложению.
Исходный код: framework/logging/CFileLogRoute.php#73 (показать)
public function getLogPath()
{
    return 
$this->_logPath;
}

getMaxFileSize() метод

public integer getMaxFileSize()
{return} integer Максимальный размер файла журнала в килобайтах (КБ). По умолчанию 1024 (1 МБ).
Исходный код: framework/logging/CFileLogRoute.php#109 (показать)
public function getMaxFileSize()
{
    return 
$this->_maxFileSize;
}

getMaxLogFiles() метод

public integer getMaxLogFiles()
{return} integer Количество файлов, используемых для ротации. По умолчанию 5.
Исходный код: framework/logging/CFileLogRoute.php#126 (показать)
public function getMaxLogFiles()
{
    return 
$this->_maxLogFiles;
}

init() метод

public void init()
Исходный код: framework/logging/CFileLogRoute.php#63 (показать)
public function init()
{
    
parent::init();
    if(
$this->getLogPath()===null)
        
$this->setLogPath(Yii::app()->getRuntimePath());
}

Инициализирует маршрут. Этот метод вызывается после создания маршрута менеджером маршрутов.

processLogs() метод

protected void processLogs(array $logs)
$logs array список сообщений журнала
Исходный код: framework/logging/CFileLogRoute.php#144 (показать)
protected function processLogs($logs)
{
    
$text='';
    foreach(
$logs as $log)
        
$text.=$this->formatLogMessage($log[0],$log[1],$log[2],$log[3]);

    
$logFile=$this->getLogPath().DIRECTORY_SEPARATOR.$this->getLogFile();
    
$fp=@fopen($logFile,'a');
    @
flock($fp,LOCK_EX);
    if(@
filesize($logFile)>$this->getMaxFileSize()*1024)
    {
        
$this->rotateFiles();
        @
flock($fp,LOCK_UN);
        @
fclose($fp);
        @
file_put_contents($logFile,$text,FILE_APPEND|LOCK_EX);
    }
    else
    {
        @
fwrite($fp,$text);
        @
flock($fp,LOCK_UN);
        @
fclose($fp);
    }
}

Сохраняет сообщения журнала в файлы.

rotateFiles() метод

protected void rotateFiles()
Исходный код: framework/logging/CFileLogRoute.php#171 (показать)
protected function rotateFiles()
{
    
$file=$this->getLogPath().DIRECTORY_SEPARATOR.$this->getLogFile();
    
$max=$this->getMaxLogFiles();
    for(
$i=$max;$i>0;--$i)
    {
        
$rotateFile=$file.'.'.$i;
        if(
is_file($rotateFile))
        {
            
// suppress errors because it's possible multiple processes enter into this section
            
if($i===$max)
                @
unlink($rotateFile);
            else
                @
rename($rotateFile,$file.'.'.($i+1));
        }
    }
    if(
is_file($file))
    {
        
// suppress errors because it's possible multiple processes enter into this section
        
if($this->rotateByCopy)
        {
            @
copy($file,$file.'.1');
            if(
$fp=@fopen($file,'a'))
            {
                @
ftruncate($fp,0);
                @
fclose($fp);
            }
        }
        else
            @
rename($file,$file.'.1');
    }
    
// clear stat cache after moving files so later file size check is not cached
    
clearstatcache();
}

Производит ротацию файлов журнала.

setLogFile() метод

public void setLogFile(string $value)
$value string Имя файла журнала
Исходный код: framework/logging/CFileLogRoute.php#101 (показать)
public function setLogFile($value)
{
    
$this->_logFile=$value;
}

setLogPath() метод

public void setLogPath(string $value)
$value string Директория для хранения файлов журналов.
Исходный код: framework/logging/CFileLogRoute.php#82 (показать)
public function setLogPath($value)
{
    
$this->_logPath=realpath($value);
    if(
$this->_logPath===false || !is_dir($this->_logPath) || !is_writable($this->_logPath))
        throw new 
CException(Yii::t('yii','CFileLogRoute.logPath "{path}" does not point to a valid directory. Make sure the directory exists and is writable by the Web server process.',
            array(
'{path}'=>$value)));
}

setMaxFileSize() метод

public void setMaxFileSize(integer $value)
$value integer Максимальный размер файла журнала в килобайтах (КБ).
Исходный код: framework/logging/CFileLogRoute.php#117 (показать)
public function setMaxFileSize($value)
{
    if((
$this->_maxFileSize=(int)$value)<1)
        
$this->_maxFileSize=1;
}

setMaxLogFiles() метод

public void setMaxLogFiles(integer $value)
$value integer Количество файлов для ротации.
Исходный код: framework/logging/CFileLogRoute.php#134 (показать)
public function setMaxLogFiles($value)
{
    if((
$this->_maxLogFiles=(int)$value)<1)
        
$this->_maxLogFiles=1;
}

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CFileLogRoute

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API