Skip to content

行为日志

行为日志用于记录用户或系统产生的业务行为事件。

每条日志包含行为标识、操作对象、请求信息以及上下文数据。

数据结构

行为日志额外包含以下字段:

字段类型说明
titlestring(255)标题
contextjson上下文数据

创建行为日志

通过 ActivityPayload 构建行为日志数据,并使用 Log::create() 写入日志。

event 用于标识行为类型,例如 order.export 表示订单导出。

php
use Pin\Modules\Log\Facades\Log;
use Pin\Modules\Log\Payloads\ActivityPayload;

$payload = new ActivityPayload('order.export')
    ->title('导出订单')
    ->subject(
        $order->id,
        $order->order_no,
        'order',
    )
    ->context([
        'count' => 100,
        'format' => 'xlsx',
    ]);

Log::create($payload);

内置路由

行为日志模块提供查询接口,用于查看行为日志及获取筛选项。

行为日志列表

GET /api/system/log/activities 用于分页查询行为日志,支持按业务对象、操作者、操作时间等条件筛选。

INFO

路由前缀 /api/system/log 可通过 modules.log.routes.api_prefix 配置。

行为日志筛选项

GET /api/system/log/activities/options 用于获取行为日志查询所需的筛选条件。

附录

行为日志配置

modules.log.activity 用于配置行为日志:

php

use Pin\Modules\Log\Controllers\ActivityLogController;
use Pin\Modules\Log\Models\ActivityLog;

'activity' => [
    'model' => ActivityLog::class,
    'controller' => ActivityLogController::class,
    'route_enabled' => true,
    'route_name' => 'system.log.activities',
],
配置项说明
model行为日志模型类,可按需覆盖
controller行为日志控制器,可按需覆盖
route_enabled是否启用内置行为日志路由
route_name行为日志列表路由名称

INFO

关闭 route_enabled 后,仅禁用内置查询接口,不影响行为日志记录。

基于 MIT 许可发布