All Projects → jeremykenedy → Laravel Logger

jeremykenedy / Laravel Logger

Licence: mit
An 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+

Projects that are alternatives of or similar to Laravel Logger

Concurrency Logger
Log HTTP requests/responses separately, visualize their concurrency and report logs/errors in context of a request.
Stars: ✭ 400 (+9.29%)
Mutual labels:  middleware, logging, logger
gxlog
A concise, functional, flexible and extensible logger for go.
Stars: ✭ 65 (-82.24%)
Mutual labels:  logger, logging
horse-logger
Middleware for access logging in HORSE
Stars: ✭ 25 (-93.17%)
Mutual labels:  middleware, logger
Tty Logger
A readable, structured and beautiful logging for the terminal
Stars: ✭ 280 (-23.5%)
Mutual labels:  logging, logger
Gin Glog
Gin middleware to use glog
Stars: ✭ 53 (-85.52%)
Mutual labels:  middleware, logging
Diary
📑 Zero-dependency, fast logging library for both Node and Browser.
Stars: ✭ 79 (-78.42%)
Mutual labels:  middleware, logging
Pygogo
A Python logging library with superpowers
Stars: ✭ 265 (-27.6%)
Mutual labels:  logging, logger
Chipmunk
log analysis tool
Stars: ✭ 247 (-32.51%)
Mutual labels:  logging, logger
Analog
PHP logging library that is highly extendable and simple to use.
Stars: ✭ 314 (-14.21%)
Mutual labels:  logging, logger
Tslog
📝 tslog - Expressive TypeScript Logger for Node.js.
Stars: ✭ 321 (-12.3%)
Mutual labels:  logging, logger
Caterpillar
Caterpillar is the ultimate logging system for Deno, Node.js, and Web Browsers. Log levels are implemented to the RFC standard. Log entries can be filtered and piped to various streams, including coloured output to the terminal, the browser's console, and debug files. You can even write your own transforms.
Stars: ✭ 330 (-9.84%)
Mutual labels:  logging, logger
Logger
HTTP middleware for Go that logs web requests to an io.Writer.
Stars: ✭ 24 (-93.44%)
Mutual labels:  middleware, logging
Gear
A lightweight, composable and high performance web service framework for Go.
Stars: ✭ 544 (+48.63%)
Mutual labels:  middleware, logging
Chromelogger Python
Python library for logging variables to Google Chrome console
Stars: ✭ 232 (-36.61%)
Mutual labels:  middleware, logging
Go Grpc Middleware
Golang gRPC Middlewares: interceptor chaining, auth, logging, retries and more.
Stars: ✭ 4,170 (+1039.34%)
Mutual labels:  middleware, logging
Home
Project Glimpse: Node Edition - Spend less time debugging and more time developing.
Stars: ✭ 260 (-28.96%)
Mutual labels:  middleware, logging
Timber Elixir
🌲 Great Elixir logging made easy
Stars: ✭ 226 (-38.25%)
Mutual labels:  logging, logger
Golog
A high-performant Logging Foundation for Go Applications. X3 faster than the rest leveled loggers.
Stars: ✭ 208 (-43.17%)
Mutual labels:  logging, logger
Nestjs Pino
Platform agnostic logger for NestJS based on Pino with REQUEST CONTEXT IN EVERY LOG
Stars: ✭ 283 (-22.68%)
Mutual labels:  logging, logger
Electron Timber
Pretty logger for Electron apps
Stars: ✭ 337 (-7.92%)
Mutual labels:  logging, logger

Laravel Logger

Laravel Activity Logger

Laravel logger is an activity event logger for your Laravel or Lumen 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.3, 5.4, 5.5, 5.6, 5.7, 5.8, 6, and 7+

Latest Stable Version Total Downloads Travis-CI Build StyleCI Scrutinizer Code Quality License: MIT

Table of contents

Features

Laravel Activity Logger Features
Logs login page visits
Logs user logins
Logs user logouts
Routing Events can recording using middleware
Records activity timestamps
Records activity description
Records activity details (optional)
Records activity user type with crawler detection.
Records activity Method
Records activity Route
Records activity Ip Address
Records activity User Agent
Records activity Browser Language
Records activity referrer
Customizable activity model
Activity panel dashboard
Individual activity drilldown report dashboard
Activity Drilldown looks up Id Address meta information
Activity Drilldown shows user roles if enabled
Activity Drilldown shows associated user events
Activity log can be cleared, restored, and destroyed using eloquent softdeletes
Cleared activity logs can be viewed and have drilldown ability
Uses font awesome, cdn assets can be optionally called in configuration
Uses Geoplugin API for drilldown IP meta information
Uses Language localization files
Lots of configuration options

Requirements

Integrations

Laravel logger can work out the box with or without the following roles packages:

Laravel Installation Instructions

  1. From your projects root folder in terminal run:
    composer require jeremykenedy/laravel-logger
  1. 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 under providers with the following:

    'providers' => [
        jeremykenedy\LaravelLogger\LaravelLoggerServiceProvider::class,
    ];
  1. 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.
  1. Optionally Update your .env file and associated settings (see Environment File section)

  2. 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

Lumen Installation Instructions

This installs laravel-logger without the GUI
  1. From your projects root folder in terminal run:
    composer require jeremykenedy/laravel-logger
  1. Register the package

Register the package with laravel in bootstrap/app.php with the following:

    $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, ]);
  1. Copy the configuration file laravel-logger.php to your config/ directory
Set LARAVEL_LOGGER_DISABLE_ROUTES=true in your .env file!
  1. 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.
  1. Optionally Update your .env file and associated settings (see Environment File section)

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_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.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('/', '[email protected]')->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:

  1. Include the call in the head of your class file:

        use jeremykenedy\LaravelLogger\App\Http\Traits\ActivityLogger;
    
  2. Include the trait call in the opening of your class:

        use ActivityLogger;
    
  3. You can record the activity my calling the traits method:

        ActivityLogger::activity("Logging this activity.");
    

    Or as bellow to include extended activity details:

        ActivityLogger::activity("Logging this activity.", "Additional activity details.");
    

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('/', '[email protected]')->name('activity');
    Route::get('/cleared', ['uses' => '[email protected]'])->name('cleared');

    // Drill Downs
    Route::get('/log/{id}', '[email protected]');
    Route::get('/cleared/log/{id}', '[email protected]');

    // Forms
    Route::delete('/clear-activity', ['uses' => '[email protected]'])->name('clear-activity');
    Route::delete('/destroy-activity', ['uses' => '[email protected]'])->name('destroy-activity');
    Route::post('/restore-log', ['uses' => '[email protected]ityLog'])->name('restore-activity');
});

Search

adding dynamic search fields (description , user, URL , method and ip address)

.env file

add these configurations to your .env file to control the logging search

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

by default all search fields are enabled when you enable the search with this one line configuration

LARAVEL_LOGGER_SEARCH_ENABLE=true

Screenshots

dashboard drilldown confirm-clear log-cleared-msg cleared-log confirm-restore confirm-destroy success-destroy success-restored cleared-drilldown

File Tree

├── .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
  • 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:

  • 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 [email protected]
  • 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!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].