dnj / laravel-error-tracker-server
Requires
- php: ^8.1
- dnj/error-tracker-contracts: ^1.0.0
- dnj/laravel-user-logger: ^1.0.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.11
- orchestra/testbench: ^7.0
- phpunit/phpunit: ^9
This package is auto-updated.
Last update: 2024-10-13 05:13:19 UTC
README
Introduction
This package is specifically built for laravel error tracking.
- Features include:
- Application Management
- Device Management
- Log Management
- Latest versions of PHP and PHPUnit and PHPCsFixer
- Best practices applied:
README.md
(badges included)LICENSE
composer.json
phpunit.xml
.gitignore
.php-cs-fixer.php
Installation
Require this package with composer.
composer require dnj/laravel-error-tracker-server
Laravel uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.
Copy the package config to your local config with the publish command:
php artisan vendor:publish --provider="dnj\ErrorTracker\Laravel\Server\ServiceProvider"
Config file
<?php return [ // Define your user model class for connect entities to users. 'user_model' => \dnj\AAA\Models\User::class, 'routes' => [ 'enable' => true, 'prefix' => 'log', // example: log, device, etc ... , ], ];
ℹ️ Note
User activity logs are disabled by default, if you want to save them set
$userActivityLog
to true.
Example :
use dnj\ErrorTracker\Contracts\IAppManager; use dnj\ErrorTracker\Contracts\IDeviceManager; use dnj\ErrorTracker\Contracts\ILogManager; use dnj\ErrorTracker\Contracts\LogLevel; $appManager = app(IAppManager::class); $app = $appManager->store( title: 'Android mobile app', owner: 1, meta: ['key' => 'value']), userActivityLog: false, ); $deviceManager = app(IDeviceManager::class); $device = $deviceManager->store( title: 'Nokia mobile', owner: 1, meta: ['serialNo' => 44514526985]), userActivityLog: false, ); $logManager = app(ILogManager::class); $log = $logManager->store( app: $app, device: $device, level: LogLevel::INFO, message: 'App just installed', data: ['version' => "1.0.0"] );
Working With Application:
- Search Applications:
use dnj\ErrorTracker\Contracts\IAppManager; $appManager = app(IAppManager::class); $apps = $appManager->search( filters: [ 'title' => 'mobile app' 'owner' => 2 ], );
- Create new Application:
use dnj\ErrorTracker\Contracts\IAppManager; $appManager = app(IAppManager::class); $app = $appManager->store( title: 'Android mobile app', owner: 1, meta: ['key' => 'value']), userActivityLog: false, );
- Update Application:
use dnj\ErrorTracker\Contracts\IAppManager; $appManager = app(IAppManager::class); $app = $appManager->update( app: 1, changes: [ 'title' => 'new title', 'owner' => 2, ], userActivityLog: true, );
- Delete application:
use dnj\ErrorTracker\Contracts\IAppManager; $appManager = app(IAppManager::class); $appManager->destroy( log: 1, userActivityLog: false, );
Working With Device:
- Search Device:
use dnj\ErrorTracker\Contracts\IDeviceManager; $deviceManager = app(IDeviceManager::class); $devices = $deviceManager->search( filters: [ 'title' => 'Nokia Mobile' 'owner' => 2 ], );
- Create new device:
use dnj\ErrorTracker\Contracts\IDeviceManager; $deviceManager = app(IDeviceManager::class); $device = $deviceManager->store( title: 'Nokia mobile', owner: 1, meta: ['key' => 'value']), userActivityLog: false, );
- Update Device:
use dnj\ErrorTracker\Contracts\IDeviceManager; $deviceManager = app(IDeviceManager::class); $device = $deviceManager->update( device: 3, changes: [ 'title' => 'My Nokia Mobile', 'owner' => 2, 'meta' => ['serialNo' => 55245252] ], userActivityLog: true, );
- Delete application:
use dnj\ErrorTracker\Contracts\IDeviceManager; $deviceManager = app(IDeviceManager::class); $deviceManager->destroy( log: 3, userActivityLog: false, );
Working With Log:
- Search Device:
use dnj\ErrorTracker\Contracts\ILogManager; use dnj\ErrorTracker\Contracts\LogLevel; $logManager = app(ILogManager::class); $logs = $logManager->search( filters: [ 'apps' => [1,2], 'devices' => [1], 'levels' => [LogLevel::DEBUG], 'message' => 'important flag', 'unread' => true, ] );
- Create new log:
use dnj\ErrorTracker\Contracts\ILogManager; use dnj\ErrorTracker\Contracts\LogLevel; $logManager = app(ILogManager::class); $log = $logManager->store( app: 1, device: 1, level: LogLevel::INFO, message: 'App has been started', );
- Mark as read log:
use dnj\ErrorTracker\Contracts\ILogManager; use dnj\ErrorTracker\Contracts\LogLevel; $logManager = app(ILogManager::class); $log = $logManager->markAsRead( log: 44, user: 3 );
- Mark as unread log:
use dnj\ErrorTracker\Contracts\ILogManager; use dnj\ErrorTracker\Contracts\LogLevel; $logManager = app(ILogManager::class); $log = $logManager->markAsUnread( log: 44, );
- Delete log:
use dnj\ErrorTracker\Contracts\ILogManager; $logManager = app(ILogManager::class); $logManager->destroy( log: 44, userActivityLog: true, );
Testing
You can run unit tests with PHP Unit:
./vendor/bin/phpunit
Contribution
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Security
If you discover any security-related issues, please email security@dnj.co.ir instead of using the issue tracker.
License
The MIT License (MIT). Please see License File for more information.