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.