Yii2 Audit 插件的使用

Yii2 Audit 插件的使用

Yii2-Audit插件是一個功能齊全的,用於記錄和顯示web 、 cli請求、數據庫更改、php /js錯誤和相關數據的插件。

並且該插件是以module的形式安裝於Yii中,使用起來極爲方便。

項目地址:https://github.com/bedezign/yii2-audit

文檔地址:https://bedezign.github.io/yii2-audit/


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',
  ],
<?php
$config = [
    'modules' => [
        'audit' => 'bedezign\yii2\audit\Audit',
    ],
];

然後訪問yourdomain.com/index.php?r=audit 即可查看訪問詳細情況。如圖:
entries.png


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'
    ],
  }
}

效果如圖:
trails.png

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',
        ],
  ],
];
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章