Yii2 Audit 插件的使用
Yii2-Audit插件是一个功能齐全的,用于记录和显示web 、 cli请求、数据库更改、php /js错误和相关数据的插件。
并且该插件是以module的形式安装于Yii中,使用起来极为方便。
功能清单[点击可跳转到对应介绍]
- 【Entries】记录Web、Cli请求 (核心功能)
- 【Trails】记录数据库变更
- 【Javascripts】记录JavaScript错误记录
- 【Errors】记录Yii2错误记录
- 记录cURL请求
- 记录SOAP请求
- 记录请求中发送的邮件
- 数据可视化统计
1.安装
1.1 本插件依赖于PHP mail parse扩展,如若使用请安装php_mailparse 并修改php.ini 启用该扩展
1.2 使用Composer安装源文件
1
composer require --prefer-dist bedezign/yii2-audit:"dev-master"
1.3 导入数据库
1
php yii migrate --migrationPath=@bedezign/yii2/audit/migrations
注意:导入前common/main-local里的数据库必须有一个名称为db的数据库配置。否则会报错。
1 | 'db' => [ |
- 1.4 最简配置
编辑config/main.php,在modules下加入:audit。更加完整的配置请查看链接 https://bedezign.github.io/yii2-audit/docs/module-configuration/然后访问yourdomain.com/index.php?r=audit 即可查看访问详细情况。如图:1
2
3
4
5
6
$config = [
'modules' => [
'audit' => 'bedezign\yii2\audit\Audit',
],
];
2.Audit功能使用介绍
按照1.安装里面介绍的步骤,可能会出现没有权限访问的情况,那么接下来介绍如何配置该插件并详细介绍其功能。
2.1 【Entries】记录Web、Cli请求
- 记录字段如下:
记录字段名称 | 解释 | 其它说明 |
---|---|---|
User | 默认记录操作用户ID | - |
IP | 记录操作者IP | - |
Request Method | 请求方法 | 例如GET、POST、HEAD、PUT等 |
Ajax | 是否是异步请求 | - |
Route | 请求的路由地址 | - |
Duration | 请求响应时长 | - |
Memory | 内存占用 | - |
Created | 请求时间 | - |
- 配置 ** 本功能是插件的核心功能,因此若要使用其它功能,必须先把这里配置好。**
完整配置请查看:https://bedezign.github.io/yii2-audit/docs/module-configuration/
以下内容均为config/main.php配置文件的内容。
1 | 'modules' => [ |
db 指定数据库连接
在使用了多数据库后,可以通过以下配置来指定一个数据库链接。1
'db' => 'myAuditDatabase',
trackActions 要监听的action
1
'trackActions' => ['*'], //监听全部action
ignoreActions 要屏蔽的action,设置后将不在日志里记录这些action
1
'ignoreActions' => ['audit/*', 'debug/*'], //设置不记录audit组件内的所有操作和debug路由下的所有操作
accessIps 允许访问audit组件的IP列表
1
'accessIps' => ['127.0.0.1', '192.168.*'], //允许本地IP和192.168.IP段下的IP访问。如果为null则允许任何人访问
accessRoles 允许访问的角色列表
1
'accessRoles' => ['admin'], //设置角色为admin的角色可以访问audit组件。如果为null则允许任何人访问
accessUsers 允许访问的User ID列表。
1
'accessUsers' => [1,2], //设置ID为1或2的用户可以访问audit组件,如果为null则允许任何人访问
maxAge 日志生命周期 单位:天
1
'maxAge' => 'debug', //永不删除
compressData 压缩数据。
panels 日志数据面板
1
2
3
4
5'panels' => [
'audit/request', //显示请求内容面板
'audit/error', //显示错误信息面板
'audit/trail', //显示数据库信息面板
],支持的面板列表如下:
- RequestPanel //跟踪所有传入web和控制台的请求数据。
- AssetPanel //显示载入的前端资源
- ConfigPanel //Yii 和PHP配置
- DbPanel //数据库查询信息
- ErrorPanel //记录PHP异常、错误。
- JavascriptPanel //自动记录JavaScript错误信息
- LogPanel //Yii日志
- MailPanel //邮件记录 这里必须开启PHP的PHPmail扩展,不然报错
- ProfilingPanel //应用程序配置信息
- TrailPanel //数据库变更记录
- ExtraDataPanel //额外定义的数据
- CurlPanel //记录应用的cURL请求。(包含响应,日志,和请求头)
- SOAPPanel //记录应用的SOAP请求
- YourOwnPanel //自定义Panel
- 通过路由 yourdomain.com/audit/entry/index 查看Web、Cli请求记录。
在记录以上字段的同时,如果配置了【Trails】【Mails】【Javascripts】【Errors】,则会显示对应的,通过该请求造成的【Trails】记录ID,【Mails】记录ID,【Javascripts】记录ID和【Errors】记录ID。
如图:
在POST hly-base-info/create 的同时,影响了数据库,并且在HlyBaseInfomodel里配置了AuditTrailBehavior,因此会记录数据库变更。**数据库变更记录配置详见2.2**
这里的Trails ID只是本次请求,导致的所有数据库变更中的最后一个,并不是完整的ID数组,完整的数据库变更还是要在Trails里查看。如图
- 查看请求详细记录
通过上面的列表,点击最左侧图标进入详细查看。里面提供了类似Yii2 Debug的功能。在显示请求详细的同时,也会附带几个面板[可通过配置决定显示哪些panel。如图:
2.2【Trails】记录数据库变更
- 记录字段
- 配置
记录数据库变更也很方便,只需要在需要记录的model的behaviors函数内加入AuditTrailBehavior:
1 | public function behaviors() |
比如记录Post表的变更记录。[会记录增/删/改操作]
1 | <?php |
2.3 记录JavaScript错误记录
- 记录字段
记录字段名称 | 解释 | 其它说明 |
---|---|---|
Entry ID | 操作记录ID | - |
Type | 错误类型 | - |
Origin | 错误来源 | 例如 localhost/:31:5 //代表HTML源代码第31行有JavaScript错误 |
Message | 错误信息 | 例如 Uncaught ReferenceError: alert1 is not defined |
- 配置
记录JavaScript错误记录只需要在view视图里使用audit提供的JSLoggingAsset注册当前资源。
1 | <?php |
2.4 记录Yii2错误记录
- 记录字段
记录字段名称 | 解释 | 其它说明 |
---|---|---|
Entry ID | 操作记录ID | - |
Message | 错误信息 | - |
ErrorCode | 错误码 | - |
File | 文件路径 | - |
Line | 导致错误的行号 | - |
Hash | 错误哈希值 | - |
Created | 创建时间 | - |
- 配置
记录错误需要在配置文件config/main里配置,注意console的errorHandler需要设置成注释中的配置。
1 | <?php |
文章评论