| Package | system.logging |
|---|---|
| Inheritance | class CFileLogRoute » CLogRoute » CComponent |
| Since | 1.0 |
| Version | $Id$ |
| Source Code | framework/logging/CFileLogRoute.php |
| Property | Type | Description | Defined By |
|---|---|---|---|
| categories | string | list of categories separated by comma or space. | CLogRoute |
| enabled | boolean | whether to enable this log route. | CLogRoute |
| filter | mixed | the additional filter (e.g. CLogFilter) that can be applied to the log messages. | CLogRoute |
| levels | string | list of levels separated by comma or space. | CLogRoute |
| logFile | string | log file name. | CFileLogRoute |
| logPath | string | directory storing log files. | CFileLogRoute |
| maxFileSize | integer | maximum log file size in kilo-bytes (KB). | CFileLogRoute |
| maxLogFiles | integer | number of files used for rotation. | CFileLogRoute |
| Method | Description | Defined By |
|---|---|---|
| __call() | Calls the named method which is not a class method. | CComponent |
| __get() | Returns a property value, an event handler list or a behavior based on its name. | CComponent |
| __isset() | Checks if a property value is null. | CComponent |
| __set() | Sets value of a component property. | CComponent |
| __unset() | Sets a component property to be null. | CComponent |
| asa() | Returns the named behavior object. | CComponent |
| attachBehavior() | Attaches a behavior to this component. | CComponent |
| attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
| attachEventHandler() | Attaches an event handler to an event. | CComponent |
| canGetProperty() | Determines whether a property can be read. | CComponent |
| canSetProperty() | Determines whether a property can be set. | CComponent |
| collectLogs() | Retrieves filtered log messages from logger for further processing. | CLogRoute |
| detachBehavior() | Detaches a behavior from the component. | CComponent |
| detachBehaviors() | Detaches all behaviors from the component. | CComponent |
| detachEventHandler() | Detaches an existing event handler. | CComponent |
| disableBehavior() | Disables an attached behavior. | CComponent |
| disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
| enableBehavior() | Enables an attached behavior. | CComponent |
| enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
| getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
| getLogFile() | Returns log file name. Defaults to 'application.log'. | CFileLogRoute |
| getLogPath() | Returns directory storing log files. Defaults to application runtime path. | CFileLogRoute |
| getMaxFileSize() | Returns maximum log file size in kilo-bytes (KB). Defaults to 1024 (1MB). | CFileLogRoute |
| getMaxLogFiles() | Returns number of files used for rotation. Defaults to 5. | CFileLogRoute |
| hasEvent() | Determines whether an event is defined. | CComponent |
| hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
| hasProperty() | Determines whether a property is defined. | CComponent |
| init() | Initializes the route. | CFileLogRoute |
| raiseEvent() | Raises an event. | CComponent |
| setLogFile() | Sets log file name | CFileLogRoute |
| setLogPath() | Sets directory for storing log files. | CFileLogRoute |
| setMaxFileSize() | Sets maximum log file size in kilo-bytes (KB). | CFileLogRoute |
| setMaxLogFiles() | Sets number of files used for rotation. | CFileLogRoute |
| Method | Description | Defined By |
|---|---|---|
| formatLogMessage() | Formats a log message given different fields. | CLogRoute |
| processLogs() | Saves log messages in files. | CFileLogRoute |
| rotateFiles() | Rotates log files. | CFileLogRoute |
log file name. Defaults to 'application.log'.
directory storing log files. Defaults to application runtime path.
maximum log file size in kilo-bytes (KB). Defaults to 1024 (1MB).
number of files used for rotation. Defaults to 5.
|
public string getLogFile()
| ||
| {return} | string | log file name. Defaults to 'application.log'. |
public function getLogFile()
{
return $this->_logFile;
}
|
public string getLogPath()
| ||
| {return} | string | directory storing log files. Defaults to application runtime path. |
public function getLogPath()
{
return $this->_logPath;
}
|
public integer getMaxFileSize()
| ||
| {return} | integer | maximum log file size in kilo-bytes (KB). Defaults to 1024 (1MB). |
public function getMaxFileSize()
{
return $this->_maxFileSize;
}
|
public integer getMaxLogFiles()
| ||
| {return} | integer | number of files used for rotation. Defaults to 5. |
public function getMaxLogFiles()
{
return $this->_maxLogFiles;
}
|
public void init()
|
public function init()
{
parent::init();
if($this->getLogPath()===null)
$this->setLogPath(Yii::app()->getRuntimePath());
}
Initializes the route. This method is invoked after the route is created by the route manager.
|
protected void processLogs(array $logs)
| ||
| $logs | array | list of log messages |
protected function processLogs($logs)
{
$logFile=$this->getLogPath().DIRECTORY_SEPARATOR.$this->getLogFile();
if(@filesize($logFile)>$this->getMaxFileSize()*1024)
$this->rotateFiles();
foreach($logs as $log)
error_log($this->formatLogMessage($log[0],$log[1],$log[2],$log[3]),3,$logFile);
}
Saves log messages in files.
|
protected void rotateFiles()
|
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))
{
if($i===$max)
unlink($rotateFile);
else
rename($rotateFile,$file.'.'.($i+1));
}
}
if(is_file($file))
rename($file,$file.'.1');
}
Rotates log files.
|
public void setLogFile(string $value)
| ||
| $value | string | log file name |
public function setLogFile($value)
{
$this->_logFile=$value;
}
|
public void setLogPath(string $value)
| ||
| $value | string | directory for storing log files. |
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)));
}
|
public void setMaxFileSize(integer $value)
| ||
| $value | integer | maximum log file size in kilo-bytes (KB). |
public function setMaxFileSize($value)
{
if(($this->_maxFileSize=(int)$value)<1)
$this->_maxFileSize=1;
}
|
public void setMaxLogFiles(integer $value)
| ||
| $value | integer | number of files used for rotation. |
public function setMaxLogFiles($value)
{
if(($this->_maxLogFiles=(int)$value)<1)
$this->_maxLogFiles=1;
}
Signup or Login in order to comment.