imo-tikuwa / cakephp-operation-logs
OperationLogs plugin for CakePHP
Installs: 306
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:cakephp-plugin
Requires
- php: >=8.0
- cakephp/cakephp: >=4.3
README
Installation
You can install this plugin into your CakePHP application using composer.
The recommended way to install composer packages is:
# for CakePHP4
composer require imo-tikuwa/cakephp-operation-logs "2.*"
# for CakePHP3
composer require imo-tikuwa/cakephp-operation-logs "1.*"
How to Use
Load plugin to bootstrap.php
// cakephp 3.6 or less
Plugin::load('OperationLogs', ['bootstrap' => true]);
// cakephp 3.7 or higher
Application::addPlugin('OperationLogs', ['bootstrap' => true]);
or Application.php
public function bootstrap(): void
{
parent::bootstrap();
+ $this->addPlugin('OperationLogs', ['bootstrap' => true]);
}
Execute the database table initialization command.
※Executing the command will delete & create operation_logs, operation_logs_hourly, operation_logs_daily, operation_logs_monthly tables.
※If you want to record up to microseconds, specify the --enable_micro
option.
cake init_operation_logs
Append middleware to 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;
}
※If you want to log all requests without using the option, please replace with OperationLogsSimpleMiddleware
middleware.
use OperationLogs\Middleware\OperationLogsSimpleMiddleware;
public function middleware($middlewareQueue)
{
$middlewareQueue
// Add operation_logs middleware.
->add(new OperationLogsSimpleMiddleware())
;
return $middlewareQueue;
}
Options.
※If 'mode' is 'exclude' the 'include_〇〇' option is ignored. (And vice versa)
CakePHP4.3以上のバージョンでPHPUnitテストを実施する場合
CakePHP4.3で実施されたFixtureのアップグレードに伴い、PHPUnitテストの際にスキーマファイルをロードする必要があります。
以下のような操作でOperationLogsプラグイン内に同梱するスキーマファイルをアプリケーション本体のschemaディレクトリにコピーすることができます。
composer require imo-tikuwa/cakephp-operation-logs "2.*"
composer run-script post-install-cmd --working-dir=vendor\imo-tikuwa\cakephp-operation-logs
Data summary commands.
daily_summaryコマンド、monthly_summaryコマンド、hourly_summaryコマンドがあります。
operation_logsテーブルのデータを元にクライアントIP、ユーザーエージェント、リクエストURLなどでグルーピングしたデータを集計します。
daily_summary command.
--target_ymdオプションで集計日を設定可能。
未指定のときは前日のデータを集計します。
データはoperation_logs_dailyテーブルに記録されます。
cake daily_summary --target_ymd=2020-02-13
monthly_summary command.
--target_ymオプションで集計年月を6桁の数字で設定可能。
未指定の時は先月のデータを集計します。
データはoperation_logs_monthlyテーブルに記録されます。
cake monthly_summary --target_ym=202002
hourly_summary command.
--target_ymdオプションで集計日を設定可能。
未指定の時は前日のデータを集計します。
1時間単位でデータを集計します。
データはoperation_logs_hourlyテーブルに記録されます。
cake hourly_summary --target_ymd=2020-02-13