Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aungwinthant/apilogger
Small laravel package for viewing api logs which can be used in debugging.
https://github.com/aungwinthant/apilogger
api laravel logger
Last synced: 6 days ago
JSON representation
Small laravel package for viewing api logs which can be used in debugging.
- Host: GitHub
- URL: https://github.com/aungwinthant/apilogger
- Owner: aungwinthant
- License: mit
- Created: 2019-09-20T18:58:36.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2022-10-02T08:13:55.000Z (about 2 years ago)
- Last Synced: 2024-10-01T16:08:09.150Z (about 1 month ago)
- Topics: api, laravel, logger
- Language: PHP
- Size: 123 KB
- Stars: 346
- Watchers: 4
- Forks: 61
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# API Logger
This is a small package that can helps in debugging api logs. It can log
request method, url, duration, request payload, which models are retrieved, controller and method.![screenshot](screenshot.png)
## Installation
1. Install the package via composer
```bash
composer require awt/apilogger @dev
```
## Usage1. Laravel 5.5 and higher uses Package Auto-Discovery, so doesn't require you to manually add
the ServiceProvider. If you use a lower version of Laravel you must register it in your
_app.php_ file:```bash
AWT\Providers\ApiLogServiceProvider::class
```2. Publish the config file with:
```bash
php artisan vendor:publish --tag=config --provider="AWT\Providers\ApiLogServiceProvider"
```The config file is called *apilogs.php*. Currently supported drivers are *db* and *file*
By default the logger will use *file* to log the data. But if you want to use Database for logging, migrate table by using
You can also configure which fields should not be logged like passwords, secrets, etc.
***You dont need to migrate if you are just using file driver***
```bash
php artisan migrate
```3. Add middleware named ***apilogger*** to the route or controller you want to log data
```php
//in route.php or web.php
Route::middleware('apilogger')->post('/test',function(){
return response()->json("test");
});
```4. Dashboard can be accessible via ***yourdomain.com/apilogs***
## Clear the logs
You can permenently clear the logs by using the following command.
```bash
php artisan apilog:clear
```
## Implement your own log driver1. Your driver class ***must*** implement ApiLoggerInterface for saving, retrieving and deleting the logs.
2. Your driver class may extends `AbstractLogger` class which provide helpful methods such as logData and mapArrayToModel.
3. Substitude in your new class name instead of `db` or `file` as the driver. eg: `\App\Apilogs\CustomLogger::class`## Security
### Add Auth
In config/apilog.php you have 'route' option, you can change the prefix and add auth middleware or any other middleware
```php
'route' => [
'prefix' => 'apilogs',
'middleware' => null,//Can be change to ['auth'] or others
]
```If you discover any security related issues, please email [email protected] instead of using the issue tracker.
## License
The MIT License (MIT). Please see [License File](LICENSE.md) for more information.