nnt/activity-log
Composer 安装命令:
composer require nnt/activity-log
包简介
Package này cung cấp các chức năng dễ sử dụng để ghi nhật ký hoạt động của người dùng ứng dụng của bạn.
README 文档
README
Cài đặt
-
Chạy lệnh sau để cài đặt package từ đường dẫn local:
composer require nnt/activity-log -
Publish cấu hình
php artisan vendor:publish --provider="NNT\ActivityLog\ActivityLogServiceProvider" --tag="config" php artisan config:cache -
Publish migration:
php artisan vendor:publish --provider="NNT\ActivityLog\ActivityLogServiceProvider" --tag="migrations" -
Chạy php artisan migrate để tạo bảng activity_logs trong DB
Hướng dẫn dùng
Manually log
Để log nhanh thì có thể sử dụng
activity_log()->log('Hello World!');
Một số tính năng nâng cao:
-
Set log_type column
Sử dụng
logTypeđể đặt giá trị cột log_typeactivity_log() ->logType($eventName) ->log('Hello World!');
-
Set Subject column
Sử dụng
performedOnđể đặt giá trị cột subject. Cột này sẽ lưu giá id và model của đối tượng cần logactivity_log() ->performedOn($anEloquentModel) ->log('Hello World!');
-
Set Subject column
Sử dụng
causedByđể đặt giá trị cột causer. Cột này sẽ lưu giá id và model của user đang log.activity_log() ->causedBy($userEloquentModel) ->log('Hello World!');
Mặc định nếu không truyền gì vào thì sẽ lấy user đang logged in.
Nếu bỏ trống trường này thì sử dụng
causedByAnonymousactivity_log() ->causedByAnonymous() ->log('Hello World!');
-
Set before_value and after_value column
Sử dung
beforeValuevàafterValueđể set giá trị cho 2 cột này, param truyền vào là array, dữ liêu sẽ được json_encode trước khi lưu vào databaseactivity_log() ->beforeValue($beforeValue) ->afterValue($afterValue) ->log('Hello World!');
-
Set description column
Sử dụng
logđể set giá trị cho cột description. Phương thức này bắt buộc phải có để save dataactivity_log() ->log('Hello World!');
-
Set created_at column
Sử dụng
createdAtđể set giá trị cho cột created_at. Param truyền vào là Carbon Objectactivity_log() ->createdAt($timestamp) ->log('Hello World!');
-
Để disable log cho request hiện tại thì sử dụng
activity_log()->disableLogging();
-
Để enable log cho request hiện tại thì sử dụng
activity_log()->enableLogging();
Model Event Log
Package này có thể sử dụng để autolog model event
Để sử dụng thì trong model thêm trait LogsActivity
use NNT\ActivityLog\Traits\LogsActivity; class NewsItem extends Model { use LogsActivity; }
Mặc định là ['created', 'updated', 'deleted'], nếu có sử dụng trait SoftDelete thì có thêm 1 event được hỗ trợ nữa là ['restored']
Để chỉ định những model event nào cần log thì setting bằng cách thêm $recordEvents trong model
protected static $recordEvents = ['deleted'];
Nếu muốn chỉ định những attributes nào sẽ không kích hoạt sự kiện log khi nó thay đổi thì sử dụng
protected static $ignoreChangedAttributes = ['text'];
Mặc định thì updated_at sẽ không được ignore, nên sẽ trigger khi update dữ liệu. Nếu muốn bỏ qua điều này thì bỏ nó vào trong $ignoreChangedAttributes
Nếu muốn loại bỏ các attributes ra khỏi giá trị log before and after value thì sử dụng
protected static $logAttributesToIgnore = ['password', 'updated_at'];
Để custom description thì sử dụng method customActivityDescription() trong model. Method này sẽ cho phép chỉnh sửa lại description trước khi lưu vào database
Ví dụ:
public function customActivityDescription($model, string $eventName) { if ($model->wasChanged('password')) { return 'Password has changed'; } return __("activity_log::messages.{$eventName}"); }
Để set cứng cột related_type thì thêm $relatedType trong model
protected static $relatedType = 'User';
Nếu không set cứng giá trị này thì cột related_type sẽ được thêm vơi định dạng PascalCase và dùng số ít (Job, Customer,...)
Config Advanced
Có thể setting 1 số chức năng ở trong file config. Xem chi tiết ở file activity-log.php
nnt/activity-log 适用场景与选型建议
nnt/activity-log 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 07 月 16 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 nnt/activity-log 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nnt/activity-log 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2024-07-16