Yii Framework v1.1.10 类参考
CFileLogRoute
包 | system.logging |
---|---|
继承 | class CFileLogRoute » CLogRoute » CComponent |
源自 | 1.0 |
版本 | $Id: CFileLogRoute.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
源码 | framework/logging/CFileLogRoute.php |
CFileLogRoute用文件记录日志信息。
日志文件被存储在 logPath 下 并且文件名可以通过 logFile 指定。 如果日志文件的大小大于maxFileSize(用kilo-bytes), 将进行一次循环 ,这将通过给文件名加前缀‘.1’来重命名当前日志文件。 所有已经存在的日志文件被移动到向后的一个位置, 例如,‘.2’ 到‘.3’,‘.1’,‘到’,‘.2’。 属性 maxLogFiles 指定保持多少个文件.
日志文件被存储在 logPath 下 并且文件名可以通过 logFile 指定。 如果日志文件的大小大于maxFileSize(用kilo-bytes), 将进行一次循环 ,这将通过给文件名加前缀‘.1’来重命名当前日志文件。 所有已经存在的日志文件被移动到向后的一个位置, 例如,‘.2’ 到‘.3’,‘.1’,‘到’,‘.2’。 属性 maxLogFiles 指定保持多少个文件.
公共属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
categories | string | 被逗号或空格分隔的类别列表。默认为空,意味着所有类别。 | CLogRoute |
enabled | boolean | 是否启用这个日志路由。默认为true。 | CLogRoute |
filter | mixed | 附加过滤器 (例如 CLogFilter) 它被应用到日志信息。
这个属性的值被传递到 Yii::createComponent 创建一个日志过滤器对象。
结果,这可能是一个表示过滤器类名的字符串或一个表示过滤器配置的数组。
总之,日志过滤器类应该是 CLogFilter 或它的一个子类。 默认为null,意味着没有过滤器被使用。 |
CLogRoute |
levels | string | 用逗号或空格分隔的等级列表。默认是空,意味着所有等级。 | CLogRoute |
logFile | string | 日志文件名。默认是‘application. | CFileLogRoute |
logPath | string | 存储日志文件目录。默认是应用程序 runtime 路径。 | CFileLogRoute |
logs | array | 到目前为止这个日志路由搜集的日志。 | CLogRoute |
maxFileSize | integer | 最大日志文件尺寸(KB)。默认是1024 (1MB)。 | CFileLogRoute |
maxLogFiles | integer | 轮流的文件数。默认是5。 | CFileLogRoute |
公共方法
受保护方法
方法 | 描述 | 定义在 |
---|---|---|
formatLogMessage() | 格式化一条日志信息已给定不同字段。 | CLogRoute |
processLogs() | 保存日志信息在文件中。 | CFileLogRoute |
rotateFiles() | 轮流日志文件。 | CFileLogRoute |
属性详细
logFile
属性
日志文件名。默认是‘application.log’。
logPath
属性
存储日志文件目录。默认是应用程序 runtime 路径。
maxFileSize
属性
最大日志文件尺寸(KB)。默认是1024 (1MB)。
maxLogFiles
属性
轮流的文件数。默认是5。
方法详细
getLogFile()
方法
public string getLogFile()
| ||
{return} | string | 日志文件名。默认是‘application.log’。 |
源码: framework/logging/CFileLogRoute.php#86 (显示)
public function getLogFile()
{
return $this->_logFile;
}
getLogPath()
方法
public string getLogPath()
| ||
{return} | string | 存储日志文件目录。默认是应用程序 runtime 路径。 |
源码: framework/logging/CFileLogRoute.php#66 (显示)
public function getLogPath()
{
return $this->_logPath;
}
getMaxFileSize()
方法
public integer getMaxFileSize()
| ||
{return} | integer | 最大日志文件尺寸(KB)。默认是1024 (1MB)。 |
源码: framework/logging/CFileLogRoute.php#102 (显示)
public function getMaxFileSize()
{
return $this->_maxFileSize;
}
getMaxLogFiles()
方法
public integer getMaxLogFiles()
| ||
{return} | integer | 轮流的文件数。默认是5。 |
源码: framework/logging/CFileLogRoute.php#119 (显示)
public function getMaxLogFiles()
{
return $this->_maxLogFiles;
}
init()
方法
public void init()
|
源码: framework/logging/CFileLogRoute.php#56 (显示)
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#137 (显示)
protected function processLogs($logs)
{
$logFile=$this->getLogPath().DIRECTORY_SEPARATOR.$this->getLogFile();
if(@filesize($logFile)>$this->getMaxFileSize()*1024)
$this->rotateFiles();
$fp=@fopen($logFile,'a');
@flock($fp,LOCK_EX);
foreach($logs as $log)
@fwrite($fp,$this->formatLogMessage($log[0],$log[1],$log[2],$log[3]));
@flock($fp,LOCK_UN);
@fclose($fp);
}
保存日志信息在文件中。
rotateFiles()
方法
protected void rotateFiles()
|
源码: framework/logging/CFileLogRoute.php#153 (显示)
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))
@rename($file,$file.'.1'); // suppress errors because it's possible multiple processes enter into this section
}
轮流日志文件。
setLogFile()
方法
public void setLogFile(string $value)
| ||
$value | string | 日志文件名 |
源码: framework/logging/CFileLogRoute.php#94 (显示)
public function setLogFile($value)
{
$this->_logFile=$value;
}
setLogPath()
方法
public void setLogPath(string $value)
| ||
$value | string | 存储日志文件目录. |
源码: framework/logging/CFileLogRoute.php#75 (显示)
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 | 日志文件的最大尺寸(KB)。 |
源码: framework/logging/CFileLogRoute.php#110 (显示)
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#127 (显示)
public function setMaxLogFiles($value)
{
if(($this->_maxLogFiles=(int)$value)<1)
$this->_maxLogFiles=1;
}