没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\log\FileTarget

继承yii\log\FileTarget » yii\log\Target » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/log/FileTarget.php

FileTarget 在文件中记录日志消息。

日志文件通过 $logFile 指定。 如果日志文件的大小超过 $maxFileSize(以千字节为单位),将启用日志文件轮换。 会使用 '.1' 后缀文件名来重命名当前日志文件。 所有现有的日志文件向后移动一个位置,即 '.1' 到 '.2','.2' 到 '.3',依此类推。 属性 $maxLogFiles 指定要保留的历史文件数。

公共属性

隐藏继承的属性

属性类型描述被定义在
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$categories array 需要记录的消息类别列表。 默认为空,表示所有类别。 您可以在类别末尾使用星号,以便可以使用该类别来匹配共享相同公共前缀的类别。 例如,'yii\db*' 将匹配以 'yii\db\' 开头的类别,例如 'yii\db\Connection'。 yii\log\Target
$dirMode integer 为新创建的目录设置的权限。 该值将由 PHP chmod() 函数使用。没有默认值。 默认为 0775,表示目录所有者和组可读写,其他用户只读。 yii\log\FileTarget
$enableRotation boolean 当日志文件达到某个 maximum size 时是否应该轮换日志文件。 默认情况下已启用日志轮换。 当您在服务器上配置了用于日志轮换的外部工具时,允许您通过此属性禁用它。 yii\log\FileTarget
$enabled boolean|callable 一个布尔值或一个可调用的函数返回值。 从 2. yii\log\Target
$except array 需要排除的消息类别列表。 默认为空,表示没有需要排除的消息。 如果此属性不为空,则此处列出的任何类别都将从 $categories 中排除。 您可以在类别末尾使用星号,以便该类别可用于匹配共享相同公共前缀的类别。 例如,'yii\db*' 将匹配以 'yii\db\' 开头的类别,例如 'yii\db\Connection'。 yii\log\Target
$exportInterval integer 累积多少条消息后才导出。默认值为 1000。 请注意,应用程序终止时将始终会导出消息。 如果将此属性设置为 0,则只会在应用程序终止之时导出消息。 yii\log\Target
$fileMode integer 为新创建的日志文件设置的权限。 该值将由 PHP chmod() 函数使用。没有默认值。 如果未设置,权限将由当前环境确定。 yii\log\FileTarget
$levels integer 需要记录的消息级别。 默认为 0,表示所有可用级别。 yii\log\Target
$logFile string 日志文件路径或[路径别名](概念别名)。如果未设置,它将使用“@runtime/logs/app. yii\log\FileTarget
$logVars array 需要记录在消息中的PHP预定义变量的列表。 请注意,必须可以通过 $GLOBALS 访问变量。否则将不会记录。 默认是 ['_GET', '_POST', '_FILES', '_COOKIE', '_SESSION', '_SERVER']。 从版本 2. yii\log\Target
$maxFileSize integer 最大日志文件大小,以千字节为单位。默认为 10240,表示 10MB。 yii\log\FileTarget
$maxLogFiles integer 用于轮换的日志文件数。默认为 5。 yii\log\FileTarget
$messages array 此日志目标从记录器中获得的消息。 请参阅 yii\log\Logger::$messages 以获取有关消息结构的详细信息。 yii\log\Target
$microtime boolean 是否以微秒记录时间。 默认是 false。 yii\log\Target
$prefix callable 一个可调用的函数,它返回一个字符串,以便为每个导出的消息添加前缀。 如果未设置,将使用 getMessagePrefix(),该消息在消息前面加上上下文信息。 例如用户 IP,用户 ID 和会话 ID。 可调用的函数应该是 function ($message) yii\log\Target
$rotateByCopy boolean 是否通过复制和截断来轮换日志文件,而不是通过重命名文件。 默认为 'true',以便与日志跟踪程序更兼容。 并且在 Windows 系统中不能很好地重命名已打开的文件。 但是,通过重命名进行轮换要快一点。 在PHP文档中 [comment by Martin Pelletier](http://www. yii\log\FileTarget

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
collect() 处理给定的日志消息。 此方法将使用 $levels$categories 过滤给定的消息。 如果需要,它还会将过滤结果导出到特定介质(例如电子邮件)。 yii\log\Target
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
export() 将日志消息写入文件。 从版本 2.0.14 开始,如果无法导出日志,此方法将抛出 LogRuntimeException 异常。 yii\log\FileTarget
filterMessages() 根据类别和级别过滤给定的消息。 yii\log\Target
formatMessage() 为便于显示将日志消息格式化为字符串。 yii\log\Target
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getEnabled() 检查日志目标是否已启用。 yii\log\Target
getLevels() yii\log\Target
getMessagePrefix() 返回要添加到给定消息前缀的字符串。 如果配置了 $prefix,它将返回回调的结果。 默认将返回用户 IP,用户 ID 和会话 ID 作为前缀。 yii\log\Target
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() 初始化路由。 路由管理器创建路由后调用此方法。 yii\log\FileTarget
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
setEnabled() 设置是否启用此日志目标。 yii\log\Target
setLevels() 设置此目标需要记录的消息级别。 yii\log\Target
trigger() Triggers an event. yii\base\Component

受保护的方法

隐藏继承的方法

方法描述被定义在
getContextMessage() 生成要记录的上下文信息。 默认会存储用户信息,系统变量等。 yii\log\Target
getTime() 返回格式化以后的消息时间戳,格式为:'Y-m-d H:i:s'。 如果 $microtime 配置为 true,则格式为 'Y-m-d H:i:s.u'。 yii\log\Target
rotateFiles() 轮换日志文件。 yii\log\FileTarget

属性详情

$dirMode 公共 属性

为新创建的目录设置的权限。 该值将由 PHP chmod() 函数使用。没有默认值。 默认为 0775,表示目录所有者和组可读写,其他用户只读。

public integer $dirMode 0775
$enableRotation 公共 属性 (自版本 2.0.3 可用)

当日志文件达到某个 maximum size 时是否应该轮换日志文件。 默认情况下已启用日志轮换。 当您在服务器上配置了用于日志轮换的外部工具时,允许您通过此属性禁用它。

public boolean $enableRotation true
$fileMode 公共 属性

为新创建的日志文件设置的权限。 该值将由 PHP chmod() 函数使用。没有默认值。 如果未设置,权限将由当前环境确定。

public integer $fileMode null
$logFile 公共 属性

日志文件路径或[路径别名](概念别名)。如果未设置,它将使用“@runtime/logs/app.log”文件。 如果不存在,将自动创建包含日志文件的目录。

public string $logFile null
$maxFileSize 公共 属性

最大日志文件大小,以千字节为单位。默认为 10240,表示 10MB。

public integer $maxFileSize 10240
$maxLogFiles 公共 属性

用于轮换的日志文件数。默认为 5。

public integer $maxLogFiles 5
$rotateByCopy 公共 属性

是否通过复制和截断来轮换日志文件,而不是通过重命名文件。 默认为 'true',以便与日志跟踪程序更兼容。 并且在 Windows 系统中不能很好地重命名已打开的文件。 但是,通过重命名进行轮换要快一点。

在PHP文档中 comment by Martin Pelletier 中描述了 Windows 系统中 rename() 函数不能与某些进程打开的文件一起使用的问题。 您可以通过将 rotateByCopy 设置为 true 解决此问题。

public boolean $rotateByCopy true

方法详情

export() 公共 方法

将日志消息写入文件。 从版本 2.0.14 开始,如果无法导出日志,此方法将抛出 LogRuntimeException 异常。

public void export()
throws yii\base\InvalidConfigException

如果无法打开日志文件进行写入

throws yii\log\LogRuntimeException

如果无法将完整的日志写入文件

init() 公共 方法

初始化路由。 路由管理器创建路由后调用此方法。

public void init()
rotateFiles() 受保护 方法

轮换日志文件。

protected void rotateFiles()