Yii2 Audit 插件的使用
Yii2-Audit插件是一個功能齊全的,用於記錄和顯示web 、 cli請求、數據庫更改、php /js錯誤和相關數據的插件。
並且該插件是以module的形式安裝於Yii中,使用起來極爲方便。
1.安裝
- 1.1 使用Composer安裝源文件
composer require --prefer-dist bedezign/yii2-audit:"dev-master"
- 1.2 導入數據庫
php yii migrate --migrationPath=@bedezign/yii2/audit/migrations
注意:導入前common/main-local裏的數據庫必須有一個名稱爲db的數據庫配置。否則會報錯。
'db' => [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;port=3306;dbname=yii2-audit',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
],
- 1.3 配置
編輯config/main.php,在modules下加入:audit。更加完整的配置請查看鏈接 https://bedezign.github.io/yii2-audit/docs/module-configuration/
<?php
$config = [
'modules' => [
'audit' => 'bedezign\yii2\audit\Audit',
],
];
然後訪問yourdomain.com/index.php?r=audit 即可查看訪問詳細情況。如圖:
2.Audit功能使用介紹
按照1.安裝裏面介紹的步驟,會出現沒有權限訪問的情況,那麼接下來介紹如何配置該插件。
2.1 記錄Yii2中的action
完整配置請查看:https://bedezign.github.io/yii2-audit/docs/module-configuration/
以下內容均爲config/main.php配置文件的內容。
'modules' => [
'audit' => [
'class' => 'bedezign\yii2\audit\Audit',
//在此加入下文介紹的配置
]
]
- db 指定數據庫連接
在使用了多數據庫後,可以通過以下配置來指定一個數據庫鏈接。
'db' => 'myAuditDatabase',
- trackActions 要監聽的action
'trackActions' => ['*'], //監聽全部action
- ignoreActions 要屏蔽的action,設置後將不在日誌裏記錄這些action
'ignoreActions' => ['audit/*', 'debug/*'], //設置不記錄audit組件內的所有操作和debug路由下的所有操作
- accessIps 允許訪問audit組件的IP列表
'accessIps' => ['127.0.0.1', '192.168.*'], //允許本地IP和192.168.IP段下的IP訪問。如果爲null則允許任何人訪問
- accessRoles 允許訪問的角色列表
'accessRoles' => ['admin'], //設置角色爲admin的角色可以訪問audit組件。如果爲null則允許任何人訪問
- accessUsers 允許訪問的User ID列表。
'accessUsers' => [1,2], //設置ID爲1或2的用戶可以訪問audit組件,如果爲null則允許任何人訪問
- maxAge 日誌生命週期 單位:天
'maxAge' => 'debug', //永不刪除
- compressData 壓縮數據。
以上內容僅設置了記錄action的操作,和Yii2 Log類似
2.2 記錄數據庫變更
記錄數據庫變更也很方便,只需要在需要記錄的model的behaviors函數內加入AuditTrailBehavior:
public function behaviors()
{
return [
'bedezign\yii2\audit\AuditTrailBehavior'
];
}
比如記錄Post表的變更記錄。[會記錄增/刪/改操作]
<?php
class Post extends \yii\db\ActiveRecord
{
public function behaviors()
{
[
'class'=> 'bedezign\yii2\audit\AuditTrailBehavior'
],
}
}
2.3 記錄JavaScript錯誤記錄
記錄JavaScript錯誤記錄只需要在view視圖裏使用audit提供的JSLoggingAsset註冊當前資源。
<?php
\bedezign\yii2\audit\web\JSLoggingAsset::register($this);
2.4 記錄Yii2 中的錯誤
記錄錯誤需要在配置文件config/main裏配置,**注意**console的errorHandler需要設置成註釋中的配置。
<?php
$config = [
'components' => [
'errorHandler' => [
// web error handler
'class' => '\bedezign\yii2\audit\components\web\ErrorHandler',
// console error handler
//'class' => '\bedezign\yii2\audit\components\console\ErrorHandler',
],
],
];