jeremykenedy / laravel-logger
Laravel 日志包
Requires
- php: >=7.3.0|^8.0
- jaybizzle/laravel-crawler-detect: 1.*
- laravellux/html: ^7.1
- dev-master
- V9.0.0
- V8.1.0
- V8.0.0
- v7.1.1
- v7.1.0
- v7.0.1
- v7.0.0
- v6.0.0
- 5.6.x-dev
- v5.0.0
- v4.2.0
- v4.1.0
- v4.0.0
- v3.9.0
- v3.8.0
- v3.7.1
- v3.7.0
- v3.6.0
- v3.5.0
- v3.4.0
- v3.3.1
- v3.3.0
- v3.2.1
- v3.2.0
- v3.1.0
- v3.0.1
- v3.0.0
- v2.9.0
- v2.8.0
- v2.7.0
- v2.6.0
- v2.5.0
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.0
- v2.2.0
- v2.1.0
- v2.0.0
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.1
- v1.0.0
- v0.5.0
- v0.0.2
- v0.0.1
- dev-l8-fixes
- dev-psr4
- dev-link-fix
- dev-bootstrap3
This package is auto-updated.
Last update: 2024-09-14 14:34:50 UTC
README
Laravel 活动日志器
Laravel 日志器是 Laravel 或 Lumen 应用的活动事件日志器。它自带仪表板,可以直接查看活动。Laravel 日志器可以作为中间件添加,也可以通过特性调用。轻松实现活动日志。此包易于配置和定制。支持 Laravel 5.3、5.4、5.5、5.6、5.7、5.8、6、7、8 和 9+
目录
功能
要求
- Laravel 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6, 和 7+
- jaybizzle/laravel-crawler-detect 包含在 composer.json 中的依赖项(用于爬虫检测)
🎞️ 视频教程
如果您想对这个包有一个更直观的了解,请观看 Laravel 包教程的视频。
集成
Laravel 日志器可以与以下角色包一起工作,也可以不与它们一起工作
- jeremykenedy/laravel-roles
- spatie/laravel-permission
- Zizaco/entrust
- romanbican/roles
- ultraware/roles
Laravel 安装说明
- 从项目根目录在终端中运行
composer require jeremykenedy/laravel-logger
- 注册包
-
Laravel 5.5 及以上版本使用包自动发现功能,无需编辑
config/app.php
文件。 -
Laravel 5.4 及以下版本,在
config/app.php
下的providers
中使用以下内容注册包
'providers' => [ jeremykenedy\LaravelLogger\LaravelLoggerServiceProvider::class, ];
- 运行迁移以将表添加到记录活动
php artisan migrate
- 注意:如果您想指定不同的表或连接,请确保您已更新
.env
文件中的所需配置变量。
-
可选:更新您的
.env
文件和相关设置(请参阅环境文件部分) -
可选:通过在项目根目录中运行以下命令发布包视图、配置文件、资源和语言文件
php artisan vendor:publish --tag=LaravelLogger
Lumen 安装说明
这将安装不带 GUI 的 laravel-logger
- 从项目根目录在终端中运行
composer require jeremykenedy/laravel-logger
- 注册包
在 bootstrap/app.php
中使用以下内容注册包
$app->register(\Jaybizzle\LaravelCrawlerDetect\LaravelCrawlerDetectServiceProvider::class); $app->configure('laravel-logger'); $app->register(\jeremykenedy\LaravelLogger\LaravelLoggerServiceProvider::class); $app->routeMiddleware(['activity' => \jeremykenedy\LaravelLogger\App\Http\Middleware\LogActivity::class, ]);
- 将配置文件 laravel-logger.php 复制到您的
config/
目录
在您的 .env 文件中设置 LARAVEL_LOGGER_DISABLE_ROUTES=true!
- 运行迁移以将表添加到记录活动
php artisan migrate
- 注意:如果您想指定不同的表或连接,请确保您已更新
.env
文件中的所需配置变量。
- 可选:更新您的
.env
文件和相关设置(请参阅环境文件部分)
配置
如果您已发布了资源,可以直接在 /config/laravel-logger.php
中配置 Laravel Activity Logger。或者,您可以将变量添加到 .env
文件中。
环境文件
以下是可用的 .env
文件变量
LARAVEL_LOGGER_DATABASE_CONNECTION=mysql LARAVEL_LOGGER_DATABASE_TABLE=laravel_logger_activity LARAVEL_LOGGER_ROLES_ENABLED=true LARAVEL_LOGGER_ROLES_MIDDLWARE=role:admin LARAVEL_LOGGER_MIDDLEWARE_ENABLED=true LARAVEL_LOGGER_MIDDLEWARE_EXCEPT= LARAVEL_LOGGER_ACTIVITY_MODEL=jeremykenedy\LaravelLogger\App\Models\Activity LARAVEL_LOGGER_USER_MODEL=App\User LARAVEL_LOGGER_USER_ID_FIELD=id LARAVEL_LOGGER_DISABLE_ROUTES=false LARAVEL_LOGGER_PAGINATION_ENABLED=true LARAVEL_LOGGER_PAGINATION_PER_PAGE=25 LARAVEL_LOGGER_DATATABLES_ENABLED=true LARAVEL_LOGGER_ENABLE_SEARCH=true LARAVEL_LOGGER_SEARCH_FIELDS=description,user,method,route,ip LARAVEL_LOGGER_DASHBOARD_MENU_ENABLED=true LARAVEL_LOGGER_DASHBOARD_DRILLABLE=true LARAVEL_LOGGER_LOG_RECORD_FAILURES_TO_FILE=true LARAVEL_LOGGER_FLASH_MESSAGE_BLADE_ENABLED=true LARAVEL_LOGGER_LAYOUT=layouts.app LARAVEL_LOGGER_BOOTSTRAP_VERSION=4 LARAVEL_LOGGER_BLADE_PLACEMENT=stack #option: yield or stack LARAVEL_LOGGER_BLADE_PLACEMENT_CSS=css-header #placement name LARAVEL_LOGGER_BLADE_PLACEMENT_JS=scripts-footer #placement name LARAVEL_LOGGER_JQUERY_CDN_ENABLED=true LARAVEL_LOGGER_JQUERY_CDN_URL=https://code.jqueryjs.cn/jquery-2.2.4.min.js LARAVEL_LOGGER_BOOTSTRAP_CSS_CDN_ENABLED=true LARAVEL_LOGGER_BOOTSTRAP_CSS_CDN_URL=https://maxcdn.bootstrap.ac.cn/bootstrap/4.0.0/css/bootstrap.min.css LARAVEL_LOGGER_BOOTSTRAP_JS_CDN_ENABLED=true LARAVEL_LOGGER_BOOTSTRAP_JS_CDN_URL=https://maxcdn.bootstrap.ac.cn/bootstrap/4.0.0/js/bootstrap.min.js LARAVEL_LOGGER_POPPER_JS_CDN_ENABLED=true LARAVEL_LOGGER_POPPER_JS_CDN_URL=https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js LARAVEL_LOGGER_FONT_AWESOME_CDN_ENABLED=true LARAVEL_LOGGER_FONT_AWESOME_CDN_URL=https://maxcdn.bootstrap.ac.cn/font-awesome/4.7.0/css/font-awesome.min.css
用法
中间件用法
监听 Laravel 认证脚手架事件的提供者,并通过中间件启用。您可以通过中间件将事件添加到路由和控制器中
activity
使用中间件在 web.php
中开始记录页面视图的示例
Route::group(['middleware' => ['web', 'activity']], function () { Route::get('/', 'WelcomeController@welcome')->name('welcome'); });
此中间件可以在配置设置中启用/禁用。
特性用法
可以通过特性直接记录事件。当使用特性时,您可以自定义事件描述。
要使用特性
-
在类文件开头包含调用
use jeremykenedy\LaravelLogger\App\Http\Traits\ActivityLogger;
-
在类开头包含特性调用
use ActivityLogger;
-
您可以调用特性的方法来记录活动
ActivityLogger::activity("Logging this activity.");
或者如下所示包含扩展活动详情
ActivityLogger::activity("Logging this activity.", "Additional activity details.");
路由
Laravel 活动仪表板路由
/activity
/activity/cleared
/activity/log/{id}
/activity/cleared/log/{id}
自定义包路由
如果您想更改路由路径、名称或其他选项,您可以在 .env
文件中禁用默认路由,方法如下:
LARAVEL_LOGGER_DISABLE_ROUTES=true
如果您已经在现有的安装上,您还需要更新您的 laravel-logger.php
配置文件,以添加配置选项
'disableRoutes' => env('LARAVEL_LOGGER_DISABLE_ROUTES', false),
然后您可以直接将路由添加到应用程序的 routes/web.php
文件中,并根据需要自定义。
Route::group(['prefix' => 'activity', 'namespace' => 'jeremykenedy\LaravelLogger\App\Http\Controllers', 'middleware' => ['web', 'auth', 'activity']], function () { // Dashboards Route::get('/', 'LaravelLoggerController@showAccessLog')->name('activity'); Route::get('/cleared', ['uses' => 'LaravelLoggerController@showClearedActivityLog'])->name('cleared'); // Drill Downs Route::get('/log/{id}', 'LaravelLoggerController@showAccessLogEntry'); Route::get('/cleared/log/{id}', 'LaravelLoggerController@showClearedAccessLogEntry'); // Forms Route::delete('/clear-activity', ['uses' => 'LaravelLoggerController@clearActivityLog'])->name('clear-activity'); Route::delete('/destroy-activity', ['uses' => 'LaravelLoggerController@destroyActivityLog'])->name('destroy-activity'); Route::post('/restore-log', ['uses' => 'LaravelLoggerController@restoreClearedActivityLog'])->name('restore-activity'); });
搜索
添加动态搜索字段(描述、用户、URL、方法和IP地址)
.env 文件
将这些配置添加到您的 .env 文件中以控制日志搜索
LARAVEL_LOGGER_ENABLE_SEARCH=true
// you can customize your search using these options [description,user,method,route,ip]
LARAVEL_LOGGER_SEARCH_FIELDS=description,user,method,route,ip
默认情况下,当您启用此单行配置进行搜索时,所有搜索字段都是启用的
LARAVEL_LOGGER_SEARCH_ENABLE=true
截图
文件树
├── .env.travis ├── .gitignore ├── .travis.yml ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── composer.json └── src ├── .env.example ├── LaravelLoggerServiceProvider.php ├── app │ ├── Http │ │ ├── Controllers │ │ │ └── LaravelLoggerController.php │ │ ├── Middleware │ │ │ └── LogActivity.php │ │ └── Traits │ │ ├── ActivityLogger.php │ │ ├── IpAddressDetails.php │ │ └── UserAgentDetails.php │ ├── Listeners │ │ ├── LogAuthenticated.php │ │ ├── LogAuthenticationAttempt.php │ │ ├── LogFailedLogin.php │ │ ├── LogLockout.php │ │ ├── LogPasswordReset.php │ │ ├── LogSuccessfulLogin.php │ │ └── LogSuccessfulLogout.php │ ├── Logic │ │ └── helpers.php │ └── Models │ └── Activity.php ├── config │ └── laravel-logger.php ├── database │ └── migrations │ └── 2017_11_04_103444_create_laravel_logger_activity_table.php ├── resources │ ├── lang │ │ ├── de │ │ │ └── laravel-logger.php │ │ └── en │ │ └── laravel-logger.php │ └── views │ ├── forms │ │ ├── clear-activity-log.blade.php │ │ ├── delete-activity-log.blade.php │ │ └── restore-activity-log.blade.php │ ├── logger │ │ ├── activity-log-cleared.blade.php │ │ ├── activity-log-item.blade.php │ │ ├── activity-log.blade.php │ │ └── partials │ │ └── activity-table.blade.php │ ├── modals │ │ └── confirm-modal.blade.php │ ├── partials │ │ ├── form-search.blade.php │ │ ├── form-status.blade.php │ │ ├── scripts.blade.php │ │ └── styles.blade.php │ └── scripts │ ├── add-title-attribute.blade.php │ ├── clickable-row.blade.php │ ├── confirm-modal.blade.php │ ├── datatables.blade.php │ └── tooltip.blade.php └── routes └── web.php
- 可以使用 brew 安装 tree 命令:
brew install tree
- 使用以下命令生成的文件树:
tree -a -I '.git|node_modules|vendor|storage|tests'
打开问题
在提交问题之前,有一些考虑因素
- 你们都很棒!
- 阅读说明 并确保所有步骤都 正确执行。
- 检查 问题的出现是否不是 针对您的开发环境 的。
- 提供 重复步骤。
- 尝试调查 问题,如果您 有解决方案,请发起一个拉取请求。
- 表明您已尝试 调查问题。
- 检查 您报告的问题是否是之前已报告问题的 重复。
- 遵循这些说明表明您已尝试。
- 如果您有任何问题,请通过电子邮件发送给我 jeremykenedy@gmail.com
- 需要帮助?我可以在 Slack 上尽我所能: https://opensourcehelpgroup.slack.com
- 请考虑这是一个开源项目,我在打开问题时免费提供给社区。
许可证
Laravel-logger 采用 MIT 许可证。祝您享受!