imo-tikuwa / cakephp-operation-logs
CakePHP的OperationLogs插件
Requires
- php: >=8.0
- cakephp/cakephp: >=4.3
README
安装
您可以使用composer将此插件安装到您的CakePHP应用程序中。
安装composer包的推荐方法是
# for CakePHP4
composer require imo-tikuwa/cakephp-operation-logs "2.*"
# for CakePHP3
composer require imo-tikuwa/cakephp-operation-logs "1.*"
使用方法
将插件加载到bootstrap.php
// cakephp 3.6 or less
Plugin::load('OperationLogs', ['bootstrap' => true]);
// cakephp 3.7 or higher
Application::addPlugin('OperationLogs', ['bootstrap' => true]);
或Application.php
public function bootstrap(): void
{
parent::bootstrap();
+ $this->addPlugin('OperationLogs', ['bootstrap' => true]);
}
执行数据库表初始化命令。
※执行该命令将删除并创建operation_logs, operation_logs_hourly, operation_logs_daily, operation_logs_monthly表。
※如果您想记录到微秒级别,请指定--enable_micro
选项。
cake init_operation_logs
将中间件追加到Application.php
use OperationLogs\Middleware\OperationLogsMiddleware;
public function middleware($middlewareQueue)
{
$middlewareQueue
// Add operation_logs middleware.
->add(new OperationLogsMiddleware([
'exclude_urls' => [
'/debug-kit',
'/admin'
]
]))
;
return $middlewareQueue;
}
※如果您想记录所有请求而不使用选项,请将其替换为OperationLogsSimpleMiddleware
中间件。
use OperationLogs\Middleware\OperationLogsSimpleMiddleware;
public function middleware($middlewareQueue)
{
$middlewareQueue
// Add operation_logs middleware.
->add(new OperationLogsSimpleMiddleware())
;
return $middlewareQueue;
}
选项。
※如果'mode'为'exclude',则忽略'include_〇〇'选项。(反之亦然)
在CakePHP4.3以上版本中执行PHPUnit测试的情况
CakePHP4.3执行的Fixture升级,在执行PHPUnit测试时需要加载schema文件。
以下操作可以将OperationLogs插件内包含的schema文件复制到应用程序的schema目录中:
composer require imo-tikuwa/cakephp-operation-logs "2.*"
composer run-script post-install-cmd --working-dir=vendor\imo-tikuwa\cakephp-operation-logs
数据摘要命令。
daily_summary命令、monthly_summary命令、hourly_summary命令。
基于operation_logs表的数据,根据客户端IP、用户代理、请求URL等进行分组,并收集数据。
daily_summary命令。
使用--target_ymd选项设置汇总日期。
未指定时,汇总前一天的日期。
数据将记录到operation_logs_daily表。
cake daily_summary --target_ymd=2020-02-13
monthly_summary命令。
使用--target_ym选项以6位数字设置汇总年月。
未指定时,汇总上一个月的数据。
数据将记录到operation_logs_monthly表。
cake monthly_summary --target_ym=202002
hourly_summary命令。
使用--target_ymd选项设置汇总日期。
未指定时,汇总前一天的日期。
按1小时为单位汇总数据。
数据将记录到operation_logs_hourly表。
cake hourly_summary --target_ymd=2020-02-13