定制laravel-logger:扩展自定义路由、视图与活动模型的完整指南

📅 2026/8/27 16:30:21
定制laravel-logger:扩展自定义路由、视图与活动模型的完整指南
定制laravel-logger扩展自定义路由、视图与活动模型的完整指南【免费下载链接】laravel-loggerAn out the box activity logger for your Laravel or Lumen application. Laravel logger is an activity event logger for your laravel application. It comes out the box with ready to use with dashboard to view your activity. Laravel logger can be added as a middleware or called through a trait. This package is easily configurable and customizable. Supports Laravel 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6, and 7项目地址: https://gitcode.com/gh_mirrors/la/laravel-loggerlaravel-logger 是一款开箱即用的 Laravel / Lumen 活动日志记录包Activity Logger它通过中间件或 Trait 自动记录登录、登出、访问路由、IP、User Agent 等行为事件并提供一个现成的活动仪表盘供你查询、清空、恢复和导出日志。本文面向新手和普通用户讲解如何快速定制它的自定义路由、自定义视图与自定义活动模型三大核心扩展点。安装方式Laravel 5.5 自动发现无需手动注册composer require jeremykenedy/laravel-logger然后执行php artisan migrate建表。一、一键发布可定制文件定制的起点 所有定制的基础是把包的配置、视图、语言文件发布到你的项目里这样修改才会持久化升级包时不被覆盖php artisan vendor:publish --tagLaravelLogger发布后会得到三类资产资产位置定制用途配置文件config/laravel-logger.php修改表名、模型、布局、开关等视图文件resources/views/vendor/LaravelLogger自定义仪表盘、弹窗、表单外观语言文件lang/vendor/LaravelLogger本地化界面文案包的入口逻辑在 LaravelLoggerServiceProvider 中它合并配置、加载默认路由、注册迁移和认证事件监听并声明上述 publish 规则——理解这一文件是理解整个定制机制的关键。二、自定义路由技巧把仪表盘装进你的系统 默认情况下laravel-logger 自动注册了一批路由如/activity主仪表盘、/activity/cleared已清空日志、/activity/log/{id}详情下钻、/activity/export导出等路由定义位于 routes/web.php。如果你想改前缀、换权限中间件、加缓存或限流只需两步1. 关闭包内置路由——在.env中设置LARAVEL_LOGGER_DISABLE_ROUTEStrue对应配置项disableRoutes见 config/laravel-logger.php。旧版本需手动在配置文件中补上该项。2. 在你的routes/web.php中复刻并自由改写路由组核心写法Route::group([ prefix admin/activity, // 换成你想要的前缀 namespace jeremykenedy\LaravelLogger\App\Http\Controllers, middleware [web, auth, activity], ], function () { Route::get(/, LaravelLoggerControllershowAccessLog)-name(activity); Route::get(/cleared, LaravelLoggerControllershowClearedActivityLog); Route::get(/log/{id}, LaravelLoggerControllershowAccessLogEntry); Route::get(/export, LaravelLoggerControllerexportActivityLog); Route::delete(/clear-activity, LaravelLoggerControllerclearActivityLog); Route::post(/restore-log, LaravelLoggerControllerrestoreClearedActivityLog); }); 控制器 LaravelLoggerController 本身已内置auth中间件并支持启用role:admin之类的角色中间件做二级权限控制你可以在此基础上再叠加自己的权限策略。三、自定义视图技巧让仪表盘融入你的 UI laravel-logger 的仪表盘视图主面板 activity-log.blade.php、详情下钻、确认弹窗等都继承自你自己应用的布局文件因此无需改包源码即可换肤指定父级布局.env中设置LARAVEL_LOGGER_LAYOUTlayouts.admin默认layouts.app仪表盘就会套用你后台的侧边栏和导航。Bootstrap 版本切换LARAVEL_LOGGER_BOOTSTRAP_VERSION3或4视图会自动在panel与card组件间切换。卡片样式增强在配置文件中设置bootstrapCardClasses例如text-white bg-primary mb-3一行搞定配色。资源注入位置bladePlacement支持yield输出到section与stackpush追加两种模式bladePlacementCss/bladePlacementJs可指定具体的 section 名称方便接入你项目的资源管理方案。CDN 资源开关jQuery、Bootstrap、Popper、Font Awesome 的 CDN 均提供开关与自定义 URL 配置项内网环境可全部关闭改用本地静态文件。需要深度改造例如把搜索栏换成你的组件、增加图表区时执行第二步的 publish 命令后直接编辑resources/views/vendor/LaravelLogger/下的 Blade 文件即可——主视图通过include组合了搜索表单、状态提示、脚本等 partials按需替换对应片段最稳妥。四、自定义活动模型技巧替换数据层 包默认的 Eloquent 模型是 Activity它使用SoftDeletes支持清空→查看→恢复/彻底删除的日志生命周期并内置了rules()校验方法和userAgentDetails访问器。最简单的替换方式——在.env指向你自己的模型类LARAVEL_LOGGER_ACTIVITY_MODELApp\Models\MyActivity LARAVEL_LOGGER_DATABASE_TABLEactivity_logs LARAVEL_LOGGER_DATABASE_CONNECTIONmysql然后继承默认模型并扩展class MyActivity extends \jeremykenedy\LaravelLogger\App\Models\Activity { // 例如新增索引访问器、关联关系、范围方法 public function scopeRecent($q) { return $q-where(created_at, , now()-subDay()); } }⚠️ 注意事项换表名/连接只需改配置模型构造函数会自动读取loggerDatabaseTable与loggerDatabaseConnection自定义模型必须兼容rules()校验规则description、userType必填等否则记录会写入失败日志文件若新增字段如项目中的relId/relModel关联模型字段就是靠迁移扩展的见 2025_12_11_002659_update_laravel_logger_activity_table.php请编写迁移自行加列并把它加入模型$fillable。五、记录方式速查中间件 Trait 双通道 ✍️方式用法适合场景中间件activity路由组加middleware [web, activity]自动记录页面访问、方法、路由TraitActivityLogger类中use ActivityLogger;后调用$this-activity(描述, 详情, [id 1, model App\Models\Order])记录业务动作下单、审批等中间件 LogActivity 支持白名单排除LARAVEL_LOGGER_MIDDLEWARE_EXCEPThealth,ping可跳过健康检查等高频路径Trait 的实现ActivityLogger会自动识别爬虫、按 HTTP 方法生成已查看/已创建/已编辑/已删除描述并处理 Cloudflare 与代理转发的真实 IP。六、进阶配置清单搜索、日期过滤与大数据量分页 ⚡在.env中打开这些开关仪表盘能力会显著增强LARAVEL_LOGGER_ENABLE_SEARCHtrue LARAVEL_LOGGER_SEARCH_FIELDSdescription,user,method,route,ip LARAVEL_LOGGER_ENABLE_DATE_FILTERINGtrue # 按日期范围/预设周期近7天、近30天等筛选 LARAVEL_LOGGER_ENABLE_EXPORTtrue # 导出 CSV / JSON / Excel LARAVEL_LOGGER_CURSOR_PAGINATION_ENABLEDtrue # 百万级日志启用游标分页大幅提升加载速度配合/activity?periodlast_7_days、/activity/export?formatcsvperiodlast_30_days这类 URL 参数可以把它直接嵌进报表流程。角色控制只需LARAVEL_LOGGER_ROLES_ENABLEDtrue并指定LARAVEL_LOGGER_ROLES_MIDDLWARErole:admin兼容 spatie/laravel-permission 等常见角色包。总结定制 laravel-logger 的黄金路径是先vendor:publish --tagLaravelLogger发布资产 → 用LARAVEL_LOGGER_DISABLE_ROUTES接管路由 → 用布局/卡片配置换肤视图 → 用LARAVEL_LOGGER_ACTIVITY_MODEL替换数据模型。三个扩展点全部围绕配置驱动设计几乎不改包源码就能完成企业级定制这也是它简单、完整、开箱即用的精髓所在。【免费下载链接】laravel-loggerAn out the box activity logger for your Laravel or Lumen application. Laravel logger is an activity event logger for your laravel application. It comes out the box with ready to use with dashboard to view your activity. Laravel logger can be added as a middleware or called through a trait. This package is easily configurable and customizable. Supports Laravel 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6, and 7项目地址: https://gitcode.com/gh_mirrors/la/laravel-logger创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考