speakol-ads / laravel-logger
Laravel Logger Package
Requires
- php: >=7.0.0
- jaybizzle/laravel-crawler-detect: 1.*
- laravelcollective/html: ^5.4|^5.5|^5.6|^5.7|^5.8
This package is auto-updated.
Last update: 2024-12-10 18:47:36 UTC
README
READY FOR USE!
- About
- Features
- Requirements
- Installation Instructions
- Configuration
- Usage
- Routes
- Screenshots
- File Tree
- Opening an Issue
- License
About
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. Easily have an Activity Log. This package is easily configurable and customizable. Supports Laravel 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, 5.7, and 5.8+
Laravel logger can work out the box with or without the following roles packages:
- jeremykenedy/laravel-roles
- spatie/laravel-permission
- Zizaco/entrust
- romanbican/roles
- ultraware/roles
Features
Requirements
- Laravel 5.1, 5.2, 5.3, 5.4, 5.5, 5.6, and 5.7+
- jaybizzle/laravel-crawler-detect included dependency in composer.json (for crawler detection)
Installation Instructions
- From your projects root folder in terminal run:
composer require jeremykenedy/laravel-logger
- Register the package
-
Laravel 5.5 and up Uses package auto discovery feature, no need to edit the
config/app.php
file. -
Laravel 5.4 and below Register the package with laravel in
config/app.php
underproviders
with the following:
'providers' => [ jeremykenedy\LaravelLogger\LaravelLoggerServiceProvider::class, ];
- Run the migration to add the table to record the activities to:
php artisan migrate
- Note: If you want to specify a different table or connection make sure you update your
.env
file with the needed configuration variables.
-
Optionally Update your
.env
file and associated settings (see Environment File section) -
Optionally publish the packages views, config file, assets, and language files by running the following from your projects root folder:
php artisan vendor:publish --tag=LaravelLogger
Configuration
Laravel Activity Logger can be configured in directly in /config/laravel-logger.php
if you published the assets.
Or you can variables to your .env
file.
Environment File
Here are the .env
file variables available:
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_USER_MODEL=App\User LARAVEL_LOGGER_DISABLE_ROUTES=false LARAVEL_LOGGER_PAGINATION_ENABLED=true LARAVEL_LOGGER_PAGINATION_PER_PAGE=25 LARAVEL_LOGGER_DATATABLES_ENABLED=true 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.jquery.com/jquery-2.2.4.min.js LARAVEL_LOGGER_BOOTSTRAP_CSS_CDN_ENABLED=true LARAVEL_LOGGER_BOOTSTRAP_CSS_CDN_URL=https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css LARAVEL_LOGGER_BOOTSTRAP_JS_CDN_ENABLED=true LARAVEL_LOGGER_BOOTSTRAP_JS_CDN_URL=https://maxcdn.bootstrapcdn.com/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.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css
Usage
Middleware Usage
Events for laravel authentication scaffolding are listened for as providers and are enabled via middleware. You can add events to your routes and controllers via the middleware:
activity
Example to start recording page views using middlware in web.php
:
Route::group(['middleware' => ['web', 'activity']], function () { Route::get('/', 'WelcomeController@welcome')->name('welcome'); });
This middlware can be enabled/disabled in the configuration settings.
Trait Usage
Events can be recorded directly by using the trait. When using the trait you can customize the event description.
To use the trait:
- Include the call in the head of your class file:
use jeremykenedy\LaravelLogger\App\Http\Traits\ActivityLogger;
- Include the trait call in the opening of your class:
use ActivityLogger;
- You can record the activity my calling the traits method:
ActivityLogger::activity("Logging this activity.");
Routes
Laravel Activity Dashbaord Routes
/activity
/activity/cleared
/activity/log/{id}
/activity/cleared/log/{id}
Custom package routes
If you wish to change the route paths, names or other options you can disable the default routes in your .env
file by setting
LARAVEL_LOGGER_DISABLE_ROUTES=true
If you are on an existing install, you will also need update your laravel-logger.php
config file to add the config option:
'disableRoutes' => env('LARAVEL_LOGGER_DISABLE_ROUTES', false),
You can then add the routes directly to your application's routes/web.php
file, and customise as required.
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'); });
Screenshots
File Tree
├── .gitignore ├── 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 │ │ └── 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-status.blade.php │ │ ├── scripts.blade.php | | └── styles.blade.php │ └── scripts │ ├── clickable-row.blade.php │ ├── confirm-modal.blade.php │ ├── datatables.blade.php │ └── tooltip.blade.php └── routes └── web.php
- Tree command can be installed using brew:
brew install tree
- File tree generated using command
tree -a -I '.git|node_modules|vendor|storage|tests
Opening an Issue
Before opening an issue there are a couple of considerations:
- A star on this project shows support and is way to say thank you to all the contributors. If you open an issue without a star, your issue may be closed without consideration. Thank you for understanding and the support. You are all awesome!
- Read the instructions and make sure all steps were followed correctly.
- Check that the issue is not specific to your development environment setup.
- Provide duplication steps.
- Attempt to look into the issue, and if you have a solution, make a pull request.
- Show that you have made an attempt to look into the issue.
- Check to see if the issue you are reporting is a duplicate of a previous reported issue.
- Following these instructions show me that you have tried.
- If you have a questions send me an email to jeremykenedy@gmail.com
- Need some help, I can do my best on Slack: https://opensourcehelpgroup.slack.com
- Please be considerate that this is an open source project that I provide to the community for FREE when opening an issue.
License
Laravel-logger is licensed under the MIT license. Enjoy!