没有命名空间的类 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

Abstract Class yii\log\Target

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

Target 是所有日志目标类的基类。

日志目标对象将根据 \yii\log\level$categories 属性过滤 yii\log\Logger 记录的消息。 它还可以将过滤后的消息导出到目标定义的特定目标, 例如电子邮件,文件。

级别过滤器和类别过滤器是组合的, 即,仅处理满足两个过滤条件的消息。 此外,您可以指定 $except 以排除某些类别的消息。

公共属性

隐藏继承的属性

属性类型描述被定义在
$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
$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
$levels integer 需要记录的消息级别。 默认为 0,表示所有可用级别。 yii\log\Target
$logVars array 需要记录在消息中的PHP预定义变量的列表。 请注意,必须可以通过 $GLOBALS 访问变量。否则将不会记录。 默认是 ['_GET', '_POST', '_FILES', '_COOKIE', '_SESSION', '_SERVER']。 从版本 2. yii\log\Target
$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

公共方法

隐藏继承的方法

方法描述被定义在
__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() 将日志 $messages 导出到特定目标。 子类必须实现此方法。 yii\log\Target
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() Initializes the object. yii\base\BaseObject
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

属性详情

$categories 公共 属性

需要记录的消息类别列表。 默认为空,表示所有类别。 您可以在类别末尾使用星号,以便可以使用该类别来匹配共享相同公共前缀的类别。 例如,'yii\db*' 将匹配以 'yii\db\' 开头的类别,例如 'yii\db\Connection'。

public array $categories = []
$enabled 公共 属性

一个布尔值或一个可调用的函数返回值。 从 2.0.13 版本开始,可以使用函数返回值作为参数。

函数返回值可用于动态设置是否启用日志目标。 例如,要仅在当前用户登录时启用日志, 您可以按如下方式配置目标:

'enabled' => function() {
    return !Yii::$app->user->isGuest;
}
public boolean getEnabled ( )
public void setEnabled ( $value )
$except 公共 属性

需要排除的消息类别列表。 默认为空,表示没有需要排除的消息。 如果此属性不为空,则此处列出的任何类别都将从 $categories 中排除。 您可以在类别末尾使用星号,以便该类别可用于匹配共享相同公共前缀的类别。 例如,'yii\db*' 将匹配以 'yii\db\' 开头的类别,例如 'yii\db\Connection'。

参见 $categories.

public array $except = []
$exportInterval 公共 属性

累积多少条消息后才导出。默认值为 1000。 请注意,应用程序终止时将始终会导出消息。 如果将此属性设置为 0,则只会在应用程序终止之时导出消息。

public integer $exportInterval 1000
$levels 公共 属性

需要记录的消息级别。 默认为 0,表示所有可用级别。

public integer getLevels ( )
public void setLevels ( $levels )
$logVars 公共 属性

需要记录在消息中的PHP预定义变量的列表。 请注意,必须可以通过 $GLOBALS 访问变量。否则将不会记录。

默认是 ['_GET', '_POST', '_FILES', '_COOKIE', '_SESSION', '_SERVER']

从版本 2.0.9 开始,可以使用其他语法: 每个元素都可以指定为以下之一:

  • var - 会记录 var
  • var.key - 只会记录 var[key]
  • !var.key - 会排除 var[key]

请注意,如果您需要记录 $_SESSION,无论是否使用了会话, 您都必须在请求开始时立即打开它。

参见 yii\helpers\ArrayHelper::filter().

public array $logVars = ['_GET''_POST''_FILES''_COOKIE''_SESSION''_SERVER']
$messages 公共 属性

此日志目标从记录器中获得的消息。 请参阅 yii\log\Logger::$messages 以获取有关消息结构的详细信息。

public array $messages = []
$microtime 公共 属性 (自版本 2.0.13 可用)

是否以微秒记录时间。 默认是 false。

public boolean $microtime false
$prefix 公共 属性

一个可调用的函数,它返回一个字符串,以便为每个导出的消息添加前缀。

如果未设置,将使用 getMessagePrefix(),该消息在消息前面加上上下文信息。 例如用户 IP,用户 ID 和会话 ID。

可调用的函数应该是 function ($message)

public callable $prefix null

方法详情

collect() 公共 方法

处理给定的日志消息。 此方法将使用 $levels$categories 过滤给定的消息。 如果需要,它还会将过滤结果导出到特定介质(例如电子邮件)。

public void collect($messages, $final)
$messages array

记录要处理的消息。 有关每条消息的结构,请参见 yii\log\Logger::$messages

$final boolean

是否在当前应用程序结束时调用此方法。

export() 公共 抽象 方法

将日志 $messages 导出到特定目标。 子类必须实现此方法。

public abstract void export()
filterMessages() 公共 静态 方法

根据类别和级别过滤给定的消息。

public static array filterMessages($messages, $levels 0, $categories = [], $except = [])
$messages array

要过滤的消息。 消息结构遵循 yii\log\Logger::$messages 中的消息结构。

$levels integer

要过滤的消息级别。 值 0 表示允许所有级别。

$categories array

要过滤的消息类别。如果为空,则表示允许所有类别。

$except array

要排除的消息类别。如果为空,则表示允许所有类别。

return array

过滤后的消息。

formatMessage() 公共 方法

为便于显示将日志消息格式化为字符串。

public string formatMessage($message)
$message array

要格式化的日志消息。 消息结构遵循 yii\log\Logger::$messages 中的消息结构。

return string

格式化后的消息

getContextMessage() 受保护 方法

生成要记录的上下文信息。 默认会存储用户信息,系统变量等。

protected string getContextMessage()
return string

上下文信息。如果是空字符串,则表示没有上下文信息。

getEnabled() 公共 方法

检查日志目标是否已启用。

public boolean getEnabled()
return boolean

一个指示是否启用此日志目标的布尔值。

getLevels() 公共 方法

public integer getLevels()
return integer

需要记录的消息级别。 默认为 0,表示所有可用级别。

getMessagePrefix() 公共 方法

返回要添加到给定消息前缀的字符串。 如果配置了 $prefix,它将返回回调的结果。 默认将返回用户 IP,用户 ID 和会话 ID 作为前缀。

public string getMessagePrefix($message)
$message array

正在导出的消息。 消息结构遵循 yii\log\Logger::$messages 中的消息结构。

return string

前缀字符串

getTime() 受保护 方法 (自版本 2.0.13 可用)

返回格式化以后的消息时间戳,格式为:'Y-m-d H:i:s'。 如果 $microtime 配置为 true,则格式为 'Y-m-d H:i:s.u'。

protected string getTime($timestamp)
$timestamp float
setEnabled() 公共 方法

设置是否启用此日志目标。

public void setEnabled($value)
$value boolean|callable

一个布尔值或一个可调用的函数返回值。 从 2.0.13 版本开始,可以使用函数返回值作为参数。

函数返回值可用于动态设置是否启用日志目标。 例如,要仅在当前用户登录时启用日志, 您可以按如下方式配置目标:

'enabled' => function() {
    return !Yii::$app->user->isGuest;
}
setLevels() 公共 方法

设置此目标需要记录的消息级别。

参数可以是消息级别名称的数组, 也可以是表示消息级别值的整数。 有效级别名称包括:'error','warning','info','trace' 和 'profile'; 有效级别值包括:yii\log\Logger::LEVEL_ERRORyii\log\Logger::LEVEL_WARNINGyii\log\Logger::LEVEL_INFOyii\log\Logger::LEVEL_TRACEyii\log\Logger::LEVEL_PROFILE

举个例子,

['error', 'warning']
// 另一种表达方式是:
Logger::LEVEL_ERROR | Logger::LEVEL_WARNING
public void setLevels($levels)
$levels array|integer

需要记录的消息级别。

throws yii\base\InvalidConfigException

如果 $levels 值不正确。