pnc-org / laravel-logger
Laravel Logger 包
Requires
- php: >=7.3.0|^8.0
- ext-json: *
- illuminate/database: ^8
- jaybizzle/laravel-crawler-detect: 1.*
- laravelcollective/html: ^5.4|^5.5|^5.6|^5.7|^5.8|^6.0|^7.0|^8.0
README
Laravel logger 是一个针对 Laravel 的活动事件记录器。它自带仪表盘,可直接查看活动。Laravel logger 可作为中间件或通过特性调用。轻松实现活动日志。此包易于配置和自定义。支持 Laravel 5.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6, 和 7+
目录
功能
要求
- 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 logger 可以与以下角色包一起使用或独立使用
- jeremykenedy/laravel-roles
- spatie/laravel-permission
- Zizaco/entrust
- romanbican/roles
- ultraware/roles
Laravel 安装说明
- 从您的项目根目录在终端中运行
composer require pnc-org/laravel-logger
- 注册包
-
Laravel 5.5 及以上版本使用包自动发现功能,无需编辑
config/app.php文件。 -
Laravel 5.4 及以下版本,在
config/app.php下的providers中使用 Laravel 注册包,如下所示
'providers' => [ Notus\LaravelLogger\LaravelLoggerServiceProvider::class, ];
- 运行迁移以将活动记录表添加到数据库
php artisan migrate
- 注意:如果您想指定不同的表或连接,请确保更新您的
.env文件,包含所需的配置变量。
-
可选:更新您的
.env文件和相关设置(请参阅环境文件部分) -
可选:通过在项目根目录中运行以下命令发布包视图、配置文件、资产和语言文件
php artisan vendor:publish --tag=LaravelLogger
Lumen 安装说明
配置
如果发布了资产,Laravel Activity Logger 可以直接在 /config/laravel-logger.php 中配置。或者,您可以将变量添加到您的 .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=Notus\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 Notus\LaravelLogger\App\Http\Traits\ActivityLogger;
-
在类开头包含特性调用
use ActivityLogger;
-
您可以调用特性的方法来记录活动
ActivityLogger::activity("Logging this activity.");或如下所示包含扩展活动细节
ActivityLogger::activity("Logging this activity.", "Additional activity details.");
路由
Laravel Activity Dashboard 路由
/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' => 'Notus\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